export declare type state = any; export declare type mounts = KompoElement[]; export declare type props = any; export declare type attributes = Object; export declare type options = Object; export declare type statefull = (state: state, Element?: KompoElement) => void; export declare type router = { getParams: () => string[]; isUrl: (u: string) => boolean; getUrl: () => string; setTo: (u: string) => boolean; goTo: (u: string, title?: string, data?: any) => boolean; get: (parent?: KompoElement, includeSiblings?: boolean) => undefined | KompoElementOrPromise; getWithDepth: (depth: number, parent?: KompoElement, includeSiblings?: boolean) => undefined | KompoElementOrPromise[]; }; export declare type routeType = { children: routeType[]; component: KompoElementOrPromise; path: string; components?: KompoElementOrPromise[]; hierarchy?: number[]; }; export declare type routeMap = { [key: string]: routeType | rawRoute; }; export declare type rawRoute = { components: KompoElementOrPromise[]; hierarchy: number[]; }; export declare type rawRouteMap = { [key: string]: rawRoute; }; export declare type componentPromiseCallback = () => KompoPromise; export interface ComponentPromiseCallback extends componentPromiseCallback { kompo: kompoBase; } export declare class KompoPromise extends Promise { kompo: kompoBase; constructor(executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void); } export declare type slotCallback = (Element: KompoElement) => void; export declare type selector = (state: state) => state; export declare type constructFn = (this: KompoElement, props: props) => void; export declare type constructComponent = (props?: props) => KompoElement; export declare type mountOptions = { Element: KompoElement; selector: undefined | selector; useParentSelector: undefined | boolean; }; export declare type kompoBase = { debug: boolean; initial: boolean; props: props; defaultProps: props; mounts: mounts; statefulls: Array; slots: { [key: string]: slotCallback; }; selector?: selector; unmount?: Function; level: number; routed?: KompoElement; resolved?: KompoElement; siblingRoutes?: routeType[]; }; export declare class KompoElement extends Element { kompo: kompoBase; __kompo__: { root: KompoElement; state: state; router: router; }; construct: constructFn; constructor(root: KompoElement, state: state, router: router, constructFn: constructFn); } export declare type KompoElementOrPromise = KompoElement | KompoPromise | ComponentPromiseCallback; //# sourceMappingURL=types.d.ts.map