import type { Comp, VJS_params_TYPE } from "./types.js"; export declare const cra: (tag: string) => (...Children_and_Properties: VJS_params_TYPE) => E; type Case = (key: K) => HTMLElement | undefined; export declare const $case: (value: any, element: any) => Case; export declare function $switch(key: K, ...cases: Case[]): HTMLElement | undefined; type LoopData = Type[]; export declare function loop(datalist: LoopData, component: (value: Type, index?: number, array?: LoopData) => HTMLElement | HTMLElement[] | DocumentFragment | DocumentFragment[] | undefined | undefined[]): HTMLElement[] | undefined; /** * Document fragment * @param children * @returns */ export declare const fragment: (children: VJS_params_TYPE) => DocumentFragment; export declare const isArrowFunc: (fn: Function) => boolean; export declare const toComp: (comp: Comp, args?: any[]) => HTMLElement | undefined; export declare const toCompNoRender: (comp: Comp) => Comp; export declare const compManager: { render(component: Comp): HTMLElement | undefined; recall(component: Comp): void; activate(component: Comp): void; /** * @internal */ _effectsToRun: Map (() => void) | void>>; scheduleEffect(component: Comp, index: number, effect: () => (() => void) | void): void; runScheduledEffects(component: Comp): void; cleanupEffects(component: Comp): void; unmount(component: Comp): void; }; /** * Invokes a function with the provided arguments. * @param fn - The function to invoke. * @param args - The arguments to pass to the function. * @returns The result of the function invocation, which is expected to be an HTMLElement. */ export declare function invoke(fn: (...args: any[]) => HTMLElement, ...args: any[]): HTMLElement | undefined; /** * Gives you access the component instance * @param effect - The function to invoke */ export declare const useExternalEffect: (effect: (ctx: Comp, ...args: any[]) => T) => (ctx: Comp, ...args: any[]) => T; export {};