import type { UmbControllerHost } from './controller-host.interface.js'; import type { ClassConstructor } from '../extension-api/index.js'; export interface UmbControllerHostBaseDeclaration extends Omit { hostConnected(): void; hostDisconnected(): void; destroy(): void; } /** * This mixin enables a class to host controllers. * This enables controllers to be added to the life cycle of this element. * * Internal storage uses TypeScript `private` + lazy `??=` initialization — the * same pattern Lit's ReactiveElement uses for its own ReactiveController list. * This allows `addUmbController` to be called during `addInitializer` * callbacks (which run before subclass class-field initializers), mirroring * Lit's behavior. * @param {object} superClass - superclass to be extended. * @mixin * @returns {UmbControllerHost} - A class which extends the given superclass. */ export declare const UmbControllerHostMixin: (superClass: T) => ClassConstructor & T;