type Prop = string | number | boolean; export declare const supports: { CSSStyleSheet: boolean; CSSContainer: boolean; }; export declare const useProps: (options: T) => { -readonly [K in keyof T as K extends `$${infer NK}` ? NK : K]: T[K] extends string[] ? T[K][number] : T[K] extends string ? string : T[K] extends number ? number : T[K] extends boolean ? boolean : never; }; export declare const useEvents: ; }>(options: T) => { [K in keyof T]: InstanceType; }; type ComponentOptions = { style?: string | string[]; props?: Props; events?: Events; methods?: Methods; template?: string; setup?: (this: Props & Methods & HTMLElement, shadowRoot: ShadowRoot) => ({ onMounted?: () => void; onUnmounted?: () => void; onAdopted?: () => void; expose?: Expose & { [K in keyof Props]?: never; }; } & { [K in keyof Props]?: ((v: Props[K], old: Props[K]) => void) | { get?: (old: Props[K]) => Props[K]; set?: (v: Props[K], old: Props[K]) => void; }; }) | void; }; type ComponentReturn = Props & Expose & OnEvents & { addEventListener(type: K, listener: (this: ComponentReturn, ev: Events[K]) => any, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: ComponentReturn, ev: Events[K]) => any, options?: boolean | EventListenerOptions): void; } & HTMLElement; export declare const useElement: (options: ComponentOptions) => { new (): ComponentReturn void) | null; }>; readonly define: (name: string) => void; prototype: HTMLElement; } & Methods; export {};