import { CustomElementConfigInternal } from "./custom-element-config.js"; import { Emitter } from "./emitter.js"; import { metadata } from "./symbols.js"; export interface Controller { [key: string | symbol]: any; [metadata]?: ControllerMetadata; onChange?: (propName: string, oldValue: any, newValue: any) => void; onInit?: VoidFunction; onParse?: (wasAsync?: boolean) => void; onViewInit?: (wasAsync?: boolean) => void; onDestroy?: VoidFunction; } export type ControllerConstructor = new (controllerMetadata: ControllerMetadata) => Controller; export interface ControllerMetadata extends CustomElementConfigInternal { events: Emitter; host: HTMLElement; root: ShadowRoot | HTMLElement; tagName: string; } //# sourceMappingURL=controller-types.d.ts.map