import { DefferObject } from '@atomify/shared'; import { Hooks, ListenMap, Property } from '../hooks'; import { Phase, PHASE_SYMBOL, SIDE_EFFECT_PHASE_SYMBOL, SideEffectPhase } from '../symbols'; import { RenderFunction } from './render'; export declare type Container = HTMLElement | ShadowRoot; export interface ComponentMeta { $listeners$: ListenMap; $onComponentReadyResolve$: DefferObject; $hooks$: Hooks; $tagName$: string; $id$: string; $clearElementOnUpdate$: boolean; $dependencies$: Set; $watchers$: Array<{ callback: () => void; dependencies: Set; }>; } export interface Component extends HTMLElement { container: Container; connected: boolean | null; styles: string; update(): void; [PHASE_SYMBOL]: Phase | null; [SIDE_EFFECT_PHASE_SYMBOL]: SideEffectPhase | null; hasShadowDom: boolean; componentOnReady: () => Promise; $cmpMeta$: ComponentMeta; props: Property; } export interface FCE

{ ({ element, update }: { element: P & Component; update: () => void; }): any; props?: Property; } interface Options { renderer?: RenderFunction; useShadowDom?: boolean; } export declare function defineElement(name: string, fn: FCE, options?: Options): void; export {}; //# sourceMappingURL=component.d.ts.map