/**
 * Screen Capture Manager
 *
 * Manages screenshot and recording operations.
 * Note: This is a mock implementation. Real implementation would use
 * native modules or external tools like ffmpeg, scrot, etc.
 */
import { EventEmitter } from 'events';
import type { ScreenshotOptions, ScreenshotResult, RecordingOptions, RecordingResult, RecordingStatus, DisplayInfo, WindowInfo, ScreenCaptureConfig } from './types.js';
export declare class CaptureManager extends EventEmitter {
    private config;
    private recording;
    private displays;
    private windows;
    constructor(config?: Partial<ScreenCaptureConfig>);
    private initializeMockData;
    /**
     * Get all available displays
     */
    getDisplays(): Promise<DisplayInfo[]>;
    /**
     * Get primary display
     */
    getPrimaryDisplay(): Promise<DisplayInfo | undefined>;
    /**
     * Get display by ID
     */
    getDisplay(id: string): Promise<DisplayInfo | undefined>;
    /**
     * Get all windows
     */
    getWindows(): Promise<WindowInfo[]>;
    /**
     * Get window by ID
     */
    getWindow(id: string): Promise<WindowInfo | undefined>;
    /**
     * Find windows by title pattern
     */
    findWindows(titlePattern: string | RegExp): Promise<WindowInfo[]>;
    /**
     * Take a screenshot
     */
    takeScreenshot(options?: Partial<ScreenshotOptions>): Promise<ScreenshotResult>;
    /**
     * Take multiple screenshots
     */
    takeScreenshots(count: number, intervalMs: number, options?: Partial<ScreenshotOptions>): Promise<ScreenshotResult[]>;
    /**
     * Start recording
     */
    startRecording(options: RecordingOptions): Promise<void>;
    /**
     * Pause recording
     */
    pauseRecording(): void;
    /**
     * Resume recording
     */
    resumeRecording(): void;
    /**
     * Stop recording
     */
    stopRecording(): Promise<RecordingResult>;
    /**
     * Cancel recording (discard)
     */
    cancelRecording(): void;
    /**
     * Get recording status
     */
    getRecordingStatus(): RecordingStatus;
    /**
     * Check if recording
     */
    isRecording(): boolean;
    /**
     * Check if paused
     */
    isPaused(): boolean;
    private resolveRegion;
    private generateMockImage;
    private generateFilePath;
    private calculateRecordingDuration;
    /**
     * Get configuration
     */
    getConfig(): ScreenCaptureConfig;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<ScreenCaptureConfig>): void;
    /**
     * Get stats
     */
    getStats(): {
        displays: number;
        windows: number;
        isRecording: boolean;
        recordingDuration: number;
    };
}
export declare function getCaptureManager(config?: Partial<ScreenCaptureConfig>): CaptureManager;
export declare function resetCaptureManager(): void;
