import { PointerData, Pointers } from './utils'; export declare class EventEmitter { private listenerMap; on(event: string, listener: Function): this; emit(event: string, ...args: any[]): boolean; } export declare class EventConfig { private events; constructor(...events: string[]); getEvents(): string[]; } export interface FlowConfig { start: EventConfig; update: EventConfig; end: EventConfig; cancel: EventConfig; } export declare class Flow extends EventEmitter { private element; config: FlowConfig; startListen: Array<() => () => void>; continueListen: Array<() => () => void>; removeListeners: Array<() => void>; allPointers: Map; changedPointers: Map; pointers: Pointers; constructor(element: Element | Document, config: FlowConfig); private proxy(fn, evt); addDOMEventListener(element: Element, evt: string, fn: (evt: Event) => void): () => void; removeDOMEventListener(element: Element, evt: string, fn: () => void): void; bind(config: FlowConfig): { startListen: Array<() => () => void>; continueListen: Array<() => () => void>; }; activate(): Array<() => void>; setPointers(_EVT: Event): void; start(evt: Event): void; update(evt: Event): void; end(evt: Event): void; cancel(evt: Event): void; continue(): void; stop(): void; }