import { EventsManager } from "../EventsManager"; import { CallbacksManager } from "../CallbacksManager"; import { IElementState, IElementParams, ElementId, IElementEvent } from "./element"; import { Processor } from "../Processor"; export * from "./subscriptions"; export * from "./element"; export * from "./hooks"; // tslint:disable-next-line: no-empty-interface export interface IContext { defaultValue?: T; } export type IFunction = (...args: A) => IElementParams; export type Callback = (value?: T) => any; export interface ILocator { eventsManager: EventsManager; callbacksManager: CallbacksManager; processor: Processor; } export interface IGlobalObject { current?: { locator: ILocator; elementId: ElementId; elementState: IElementState; }; } export interface IRootState { rootElementId: ElementId; elements: { [index: number]: { state: IElementState } }; } export type IEventHandle = (processor: Processor, event: IElementEvent) => boolean;