import { Page } from 'playwright';
export interface ElementInspectionResult {
    exists: boolean;
    visible?: boolean;
    properties?: Record<string, any>;
    computedStyles?: Record<string, string>;
}
export interface MultipleElementInspectionResult {
    selector: string;
    exists: boolean;
    visible?: boolean;
    properties?: Record<string, any>;
    computedStyles?: Record<string, string>;
}
export interface ElementBounds {
    top: number;
    left: number;
    width: number;
    height: number;
    right: number;
    bottom: number;
}
/**
 * Coordinates DOM element inspection functionality
 * Extracted from LocalDebugEngine for better separation of concerns and testability
 *
 * Handles:
 * - Single and multiple element inspection
 * - Element existence and visibility checks
 * - Element property and style extraction
 * - Element bounds and positioning
 */
export declare class ElementInspectionCoordinator {
    private page;
    /**
     * Attach to a page for element inspection
     */
    attachToPage(page: Page): Promise<void>;
    /**
     * Inspect a specific element and capture its state
     */
    inspectElement(selector: string): Promise<ElementInspectionResult>;
    /**
     * Inspect multiple elements in a single evaluation for efficiency
     */
    inspectMultipleElements(selectors: string[]): Promise<MultipleElementInspectionResult[]>;
    /**
     * Find all elements matching a selector
     */
    findAllElements(selector: string): Promise<Array<{
        tagName: string;
        id: string;
        className: string;
    }>>;
    /**
     * Check if an element exists
     */
    elementExists(selector: string): Promise<boolean>;
    /**
     * Check if an element is visible
     */
    isElementVisible(selector: string): Promise<boolean>;
    /**
     * Get the count of elements matching a selector
     */
    getElementCount(selector: string): Promise<number>;
    /**
     * Get all attributes of an element
     */
    getElementAttributes(selector: string): Promise<Record<string, string> | null>;
    /**
     * Get computed styles for an element
     */
    getComputedStyles(selector: string, properties?: string[]): Promise<Record<string, string> | null>;
    /**
     * Get element bounds (getBoundingClientRect)
     */
    getElementBounds(selector: string): Promise<ElementBounds | null>;
}
//# sourceMappingURL=element-inspection-coordinator.d.ts.map