/** * Macro Recorder * * Records, plays back, and manages keyboard macros. * * @since v1.58.2 */ import type { Macro, MacroExportFormat, MacroLibrary, MacroPlaybackState, MacroRecorderConfig, MacroRecorderState, MacroStep } from './macro-types.js'; /** * Macro Recorder */ export declare class MacroRecorder { private config; private recorderState; private playbackState; private library; private playbackTimeoutId; private onRecorderStateChange?; private onPlaybackStateChange?; private onLibraryChange?; private onStepExecute?; constructor(config?: Partial, callbacks?: { onRecorderStateChange?: (state: MacroRecorderState) => void; onPlaybackStateChange?: (state: MacroPlaybackState) => void; onLibraryChange?: (library: MacroLibrary) => void; onStepExecute?: (step: MacroStep) => Promise; }); /** * Start recording a macro */ startRecording(register: string): boolean; /** * Stop recording and save the macro */ stopRecording(): Macro | null; /** * Cancel recording without saving */ cancelRecording(): void; /** * Record a keypress */ recordKeypress(key: string, modifiers?: ('ctrl' | 'alt' | 'shift' | 'meta')[]): void; /** * Record text input */ recordInput(value: string, field?: string): void; /** * Record an action */ recordAction(action: string, params?: Record): void; /** * Record a wait step */ recordWait(duration: number): void; /** * Play a macro from a register */ playRegister(register: string, loops?: number): Promise; /** * Play a macro */ playMacro(macro: Macro, loops?: number): Promise; /** * Execute the next step in playback */ private executeNextStep; /** * Pause playback */ pausePlayback(): void; /** * Resume playback */ resumePlayback(): void; /** * Stop playback */ stopPlayback(): void; /** * Set playback speed */ setPlaybackSpeed(speed: number): void; /** * Save a macro to the library */ saveMacro(macro: Macro): boolean; /** * Delete a macro from the library */ deleteMacro(id: string): boolean; /** * Assign a macro to a register */ assignToRegister(macroId: string, register: string): boolean; /** * Clear a register */ clearRegister(register: string): void; /** * Get macro by ID */ getMacro(id: string): Macro | undefined; /** * Get macro from register */ getRegisterMacro(register: string): Macro | null; /** * Get all macros */ getAllMacros(): Macro[]; /** * Get last played macro */ getLastPlayed(): Macro | undefined; /** * Export macros */ export(macroIds?: string[]): MacroExportFormat; /** * Import macros */ import(data: MacroExportFormat, overwrite?: boolean): { imported: number; errors: string[]; }; /** * Get recorder state */ getRecorderState(): MacroRecorderState; /** * Get playback state */ getPlaybackState(): MacroPlaybackState; /** * Get library */ getLibrary(): MacroLibrary; /** * Check if recording */ isRecording(): boolean; /** * Check if playing */ isPlaying(): boolean; /** * Update configuration */ updateConfig(config: Partial): void; /** * Check tier access */ private isTierAllowed; private notifyRecorderStateChange; private notifyPlaybackStateChange; private notifyLibraryChange; } /** * Create a macro recorder instance */ export declare function createMacroRecorder(config?: Partial, callbacks?: { onRecorderStateChange?: (state: MacroRecorderState) => void; onPlaybackStateChange?: (state: MacroPlaybackState) => void; onLibraryChange?: (library: MacroLibrary) => void; onStepExecute?: (step: MacroStep) => Promise; }): MacroRecorder; //# sourceMappingURL=macro-recorder.d.ts.map