import { Page } from 'playwright';
import { DebugState, DOMSnapshot } from '../types';
import { ReactStateEngine } from '../react-state-engine';
import { JavaScriptExecutionEngine } from '../javascript-execution-engine';
import { FlutterDebugEngineEnhanced } from '../flutter-debug-engine-enhanced-modular';
export interface ReactComponent {
    name: string;
    props: any;
    state: any;
}
export interface PhoenixLiveViewState {
    connected: boolean;
    views: Array<{
        id: string;
        session: string;
        element: {
            id: string;
            className: string;
            tagName: string;
        };
    }>;
    hooks: string[];
}
/**
 * Captures and manages application state including DOM, storage, and framework-specific state
 * Extracted from LocalDebugEngine for better separation of concerns
 */
export declare class StateCapture {
    private reactStateEngine?;
    private jsExecutionEngine?;
    private flutterEnhancedEngine?;
    private page;
    constructor(reactStateEngine?: ReactStateEngine | undefined, jsExecutionEngine?: JavaScriptExecutionEngine | undefined, flutterEnhancedEngine?: FlutterDebugEngineEnhanced | undefined);
    /**
     * Attach to a page for state capturing
     */
    attachToPage(page: Page): Promise<void>;
    /**
     * Capture comprehensive debug state including storage, cookies, and URL
     */
    captureState(): Promise<DebugState>;
    /**
     * Capture browser storage (localStorage or sessionStorage)
     */
    private captureStorage;
    /**
     * Capture DOM structure snapshot
     */
    captureDOMSnapshot(): Promise<DOMSnapshot>;
    /**
     * Find React components and their state
     */
    findReactComponents(): Promise<ReactComponent[]>;
    /**
     * Find Phoenix LiveView state
     */
    findPhoenixLiveViewState(): Promise<PhoenixLiveViewState | null>;
    /**
     * Get React component tree via ReactStateEngine
     */
    getReactComponentTree(): Promise<any>;
    /**
     * Get React state via ReactStateEngine
     */
    getReactState(): Promise<any>;
    /**
     * Capture JavaScript variable state via JavaScriptExecutionEngine
     */
    captureVariableState(variablePath: string, scope?: string): Promise<any>;
    /**
     * Capture Flutter state snapshot via FlutterDebugEngineEnhanced
     */
    captureFlutterStateSnapshot(): Promise<any>;
    /**
     * Inspect element properties and computed styles
     */
    inspectElement(selector: string): Promise<{
        exists: boolean;
        visible?: boolean;
        properties?: any;
        computedStyles?: any;
    }>;
}
//# sourceMappingURL=state-capture.d.ts.map