export declare abstract class Machine { #private; disposables: { addEventListener(element: Window | Document | HTMLElement, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void; requestAnimationFrame(callback: FrameRequestCallback): () => void; nextFrame(callback: FrameRequestCallback): () => void; setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void; microTask(cb: () => void): () => void; style(node: ElementCSSInlineStyle, property: string, value: string): () => void; group(cb: (d: { addEventListener(element: Window | Document | HTMLElement, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void; requestAnimationFrame(callback: FrameRequestCallback): () => void; nextFrame(callback: FrameRequestCallback): () => void; setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void; microTask(cb: () => void): () => void; style(node: ElementCSSInlineStyle, property: string, value: string): () => void; group(cb: any): () => void; add(cb: () => void): () => void; dispose(): void; }) => void): () => void; add(cb: () => void): () => void; dispose(): void; }; constructor(initialState: State); dispose(): void; get state(): Readonly; abstract reduce(state: Readonly, event: Event): Readonly; subscribe(selector: (state: Readonly) => Slice, callback: (state: Slice) => void): () => void; on(type: T, callback: (state: State, event: Extract) => void): () => void; send(event: Event): void; } export declare function shallowEqual(a: any, b: any): boolean; export declare function batch void, P extends any[] = Parameters>(setup: () => [callback: F, handle: () => void]): (...args: P) => void;