export interface EndUserProps{ triggerInsertPosition: InsertPosition; buttonContent: string; } export interface AllProps extends EndUserProps{ enhancedElement: Element; byob?: boolean, trigger: HTMLButtonElement; resolved: boolean, } export type AP = AllProps; export type PAP = Partial; export type ProPAP = Promise; export interface Actions{ addDeleteBtn(self: AP): ProPAP ; setBtnContent(self: AP): void; beDeleted(self: AP): void; init(self: AP & Actions, enhancedElement: Element, initVals: PAP): Promise; }