import { ReactElement, Context, ReactNode } from "react"; import DataStore, { DataValues } from "./classes/DataStore"; import type StoreEvent from "./classes/StoreEvent"; export declare type DataStoreContext = Context; export declare type DataStoreElementProps = Omit & { name?: string | number; }; export interface DataStoreHandler { Provider: DataStoreContext["Provider"]; isRoot: boolean; timestamp: number; store: DataStore; } export declare type BindingListener = (e: StoreEvent) => void; export declare type BindingChildren = ((store: DataStore, handler: DataStoreHandler) => ReactElement) | ReactNode; export interface BindingProps { debug?: boolean; data?: DataValues; name?: string | number; children?: BindingChildren; onChange?: BindingListener; } export interface BindingListeners { onChange?: BindingListener; onDidChange?: BindingListener; onReset?: BindingListener; onSubmit?: BindingListener; }