UNPKG

reactron

Version:

Reactron - Transactional Reactive Front-End Development Framework

47 lines (46 loc) 2.13 kB
export declare type Render<E = unknown, O = void> = (element: E, options: O) => void | Promise<void>; export declare type SuperRender<E = unknown, O = void> = ((render: (options: O) => void, element: E) => void); export declare type AsyncSuperRender<O = unknown, E = void> = ((render: (options: O) => Promise<void>, element: E) => Promise<void>); export declare type Customize<E = unknown, O = void> = (element: E, options: O) => void; export declare type AsyncCustomize<E = unknown, O = void> = (element: E, options: O) => Promise<void>; export interface RxNodeType<E = unknown, O = void> { readonly name: string; readonly sequential: boolean; initialize?(node: RxNode<E, O>): void; mount?(node: RxNode<E, O>): void; render?(node: RxNode<E, O>, args: unknown): void; finalize?(node: RxNode<E, O>, initiator: RxNode): void; } export interface RxNodeInstance<E = unknown, O = void> { readonly uuid: number; readonly level: number; revision: number; native?: E; model?: unknown; children: ReadonlyArray<RxNode>; buffer: Array<RxNode> | undefined; guests: ReadonlyArray<RxNode>; resizeObserver?: ResizeObserver; rerender(node: RxNode<E, O>): void; } export declare class RxNode<E = any, O = any> { readonly id: string; readonly args: unknown; readonly render: Render<E, O>; readonly superRender: SuperRender<E, O> | undefined; priority: number; childrenShuffling: boolean; readonly type: RxNodeType<E, O>; readonly inline: boolean; readonly creator: RxNode; readonly host: RxNode; instance?: RxNodeInstance<E, O> | undefined; old?: RxNode<E, O>; prevSibling?: RxNode; get parent(): RxNode; get revision(): number; get native(): E | undefined; set native(e: E | undefined); get resizeObserver(): ResizeObserver | undefined; constructor(id: string, args: unknown, render: Render<E, O>, superRender: SuperRender<E, O> | undefined, priority: number, childrenShuffling: boolean, type: RxNodeType<E, O>, inline: boolean, creator: RxNode, host: RxNode, instance?: RxNodeInstance<E, O> | undefined); }