import { AddClassesArgs, ComponentChildren } from '../dom/create-dom-element'; import { MaybeReactive } from '../reactive'; import { MaybeArray } from '../utils/array'; import { TinafElement, VComponent, WithHtml } from './component'; export type Context = Record; export type EmptyContext = Record; export declare class SimpleVComponent implements VComponent { private props; renderFn: (props: RenderFnParams, context: Ctx) => TinafElement; constructor(props: RenderFnParams, renderFn: (props: RenderFnParams, context: Ctx) => TinafElement); private context; provide>(context: I): void; readonly __type = "V_COMPONENT"; readonly __subtype = "V3"; child: TinafElement; html: MaybeArray; parent: WithHtml; private parentClasses?; addClass(newClass?: AddClassesArgs): this; /** * union of classes between 'className' prop and parent propagating classes to nearest child DOM element */ private get classesUnion(); init(parent: WithHtml): void; private _executeOnInitCallback; private onDestroyCallback; private _registerOnDestroyCallback; private get children(); renderOnce(): MaybeArray; destroy(): void; } export type ComponentFn = ReturnType>; export declare function component(renderFn: (p: RenderFnParams, context: Ctx) => TinafElement): (extendedProps: RenderFnParams) => SimpleVComponent; type NoProps = Record; type DefaultComponentProps = { children?: ComponentChildren; className?: AddClassesArgs; }; type RenderFnParams = Props extends NoProps ? DefaultComponentProps : DefaultComponentProps & { [K in keyof Omit]: Props[K] extends (...args: any[]) => any ? Props[K] : K extends `on${string}` ? Props[K] : MaybeReactive; }; type ComponentProps = { [key: string]: any; } & { children?: never; }; export {};