interface PrimaryRegistration { type: 'primary'; discoveredProps: Array; } interface SecondaryRegistration { type: 'secondary'; update: (props: Props) => void; } interface SuspendedRegistration { type: 'suspended'; } export type RegistrationState = PrimaryRegistration | SecondaryRegistration | SuspendedRegistration; type RegistrationType = RegistrationState['type']; type RegistrationChangeHandler = (registration: PrimaryRegistration | SecondaryRegistration) => void; interface RegistrationInternal { forceType: RegistrationType | undefined; props: Props; secondaryInstance: SecondaryRegistration; onChange: (registration: PrimaryRegistration | SecondaryRegistration) => void; } export interface AppLayoutWidgetApiInternal { register(forceDeduplicationType: RegistrationType | undefined, onPropsChange: RegistrationChangeHandler): () => void; getStateForTesting(): { registrations: Array>; }; } export declare class AppLayoutWidgetController { #private; register: (forceType: RegistrationType | undefined, onRegistrationChange: RegistrationChangeHandler) => (() => void); getStateForTesting: () => { registrations: RegistrationInternal[]; }; installInternal: (internalApi?: Partial>) => AppLayoutWidgetApiInternal; } export {};