interface Constructable { new (...args: any): T; } export interface iRecordedEvent { timestamp: number; data: Partial; } declare type iDataMapper = (e: WindowEventMap[T]) => Partial; export declare const createEventRecordSystem: (eventName: K, EventType: Constructable, dataMapper?: iDataMapper) => { onData: import("@chantey/core").iEvent>; eventName: K; getRecordedData: () => iRecordedEvent[]; startPlayback: (data: iRecordedEvent[]) => void; stopPlayback: () => void; startRecording: () => void; stopRecording: () => iRecordedEvent[]; }; export declare type iEventRecordSystem = ReturnType; export {};