publish: interface

generated from commit 960e885b621e1c94d808f78edc5ceccd04e36b6e