import type { browserPageType, Comp, CradovaPageType } from "./types.js"; /** * Cradova Signal * ---- * Create a pub&sub store. * Features: * - create a store for object and list for array * - subscribe components to events * - persist changes to localStorage * @constructor initial: Record, props: {persist} */ export declare class Signal = any> { data: Type; soft: Type; passers?: Record]>; private queue; constructor(initial: Type, props?: { persistName?: string | undefined; }); /** * Cradova Signal * ---- * publish events to subscribers */ set(data: Type): void; /** * Cradova Signal * ---- * subscribe a function, component to an event * * @param eventName of event. * @param element to render. */ computed(eventName: T | "__ALL__" | (() => void) | Comp | ((ctx: Comp) => HTMLElement), listener?: (() => void) | Comp | ((ctx: Comp) => HTMLElement)): HTMLElement | undefined; /** * Cradova Signal * ---- * subscribe an element to an event */ get pass(): Record]>; /** * Cradova Signal * ---- * clear the history on local storage */ clearPersist(): void; } /** * Cradova List * --- * A virtual list store and component for efficient rendering of large lists. */ export declare class List { length: number; private windowCoverage; private itemsInVisibleRange; private scrollingDirection; private opts?; private columns; constructor(state: T[], item?: (item: T, i: number) => HTMLElement, opts?: { itemHeight?: number; className?: string; columns?: number; windowHeight?: number; windowWidth?: number; itemsInVisibleRange?: number; scrollingDirection?: "vertical" | "horizontal"; onScrollEnd?: () => void; }); get Element(): HTMLElement; private render; computed(listener?: (() => void) | Comp | ((ctx: Comp) => HTMLElement)): HTMLElement | undefined; private diffDOMBeforeUpdatingState; get data(): IterableIterator; get(index: number): T; indexOf(item: T): number; update(index: number, newItemData: T): void; push(itemData: T): void; map(callback: (item: T, index: number) => K): K[]; splice(index: number, count?: number, ...items: T[]): void; set(newData: T[] | ((prevItem: T[]) => T[])): void; } /** * Cradova Page * --- * create instances of manageable pages * @param name * @param template */ export declare class Page { _unload_CB?: (this: Page) => Promise | void; _activate_CB?: (this: Page) => Promise | void; constructor(pageParams: CradovaPageType); set onDeactivate(cb: (this: Page) => Promise | void); set onActivate(cb: (this: Page) => Promise | void); } /** cradova router * --- * Registers a route. * * @param {string} path Route path. * @param page the cradova document tree for the route. */ export declare class Router { /** * cradova router * --- * Registers a route. * * accepts an object containing pat and page */ static BrowserRoutes(obj: Record>): void; /** Pause navigation */ static pauseNavigation(): void; /** resume navigation */ static resumeNavigation(): void; /** * Cradova Router * ------ * * Navigates to a designated page in your app * * @param href string * @param data object * @param force boolean */ static navigate(href: string, data?: Record): void; /** * Cradova * --- * Loading page for your app * * lazy loaded loading use * * @param page */ static setLoadingPage(page: Page): void; /** * Cradova Router * ------ * return last set router params */ static get PageData(): { params: Record; data?: Record; }; /** * Cradova * --- * Error Handler for your app * * @param callback * @param path? page path */ static addErrorHandler(callback: (err?: unknown, pagePath?: string) => void): void; } /** * Cradova * --- * make reference to dom elements */ export declare class RefInstance { private $refs; current(key: string): T | undefined; get refs(): Record; /** * Bind a DOM element to a reference name. * @param name - The name to reference the DOM element by. */ bind(name: string): [RefInstance, string]; }