interface RefShim { current: T | null; } export interface ActionContext { type: string; headerRef: RefShim; contentRef: RefShim; } export interface ActionConfig { id: string; orderPriority?: number; mountContent: (container: HTMLElement, context: ActionContext) => void; updateContent?: (container: HTMLElement, context: ActionContext) => void; unmountContent: (container: HTMLElement) => void; } type ActionRegistrationListener = (action: Array) => void; export interface ActionsApiPublic { registerAction(config: ActionConfig): void; clearRegisteredActionsForTesting(): void; } export interface ActionsApiInternal { onActionRegistered(listener: ActionRegistrationListener): () => void; } export declare class ActionButtonsController { private listeners; private actions; private scheduleUpdate; registerAction: (action: ActionConfig) => void; clearRegisteredActionsForTesting: () => void; onActionRegistered: (listener: ActionRegistrationListener) => () => void; installPublic(api?: Partial): ActionsApiPublic; installInternal(internalApi?: Partial): ActionsApiInternal; } export {};