import { type MixedInCtor } from "../../stencil-public-runtime"; import { type Logger } from "../../logger"; export declare const loggerFactory: (Base: B) => { new (...args: any[]): { /** @internal */ __logger: Logger | null; readonly logger: Logger; readonly element: import("@stencil/core/internal").HTMLStencilElement; }; } & B; export type BaseComponentType = ReturnType; /** * Base class factory for Unidy Stencil components that provides logging functionality * and allows composing additional mixins. * Components extending this class get a `this.logger` property that automatically prefixes log messages with the component's class name. * Components extending this class get a `this.element` property that automatically returns the component's host element. */ export declare const UnidyComponent: MixedInCtor)[]>(...mixins: T) => abstract new (...args: any[]) => (((readonly [(Base: B) => { new (...args: any[]): { /** @internal */ __logger: Logger | null; readonly logger: Logger; readonly element: import("@stencil/core/internal").HTMLStencilElement; }; } & B, ...T])[number] extends infer T_1 ? T_1 extends (readonly [(Base: B) => { new (...args: any[]): { /** @internal */ __logger: Logger | null; readonly logger: Logger; readonly element: import("@stencil/core/internal").HTMLStencilElement; }; } & B, ...T])[number] ? T_1 extends (base: MixedInCtor) => MixedInCtor ? I : never : never : never) extends infer T_2 ? T_2 extends ((readonly [(Base: B) => { new (...args: any[]): { /** @internal */ __logger: Logger | null; readonly logger: Logger; readonly element: import("@stencil/core/internal").HTMLStencilElement; }; } & B, ...T])[number] extends infer T_3 ? T_3 extends (readonly [(Base: B) => { new (...args: any[]): { /** @internal */ __logger: Logger | null; readonly logger: Logger; readonly element: import("@stencil/core/internal").HTMLStencilElement; }; } & B, ...T])[number] ? T_3 extends (base: MixedInCtor) => MixedInCtor ? I : never : never : never) ? T_2 extends any ? (k: T_2) => void : never : never : never) extends (k: infer I_1) => void ? I_1 : never;