/**
 * Browser Permission Handler
 * Framework-agnostic module for handling browser permissions
 */
import { Page, BrowserContext } from 'playwright';
export interface PermissionRequest {
    type: string;
    name?: string;
    method?: string;
    timestamp: number;
}
export interface GeolocationOptions {
    latitude: number;
    longitude: number;
    accuracy?: number;
}
export declare class BrowserPermissionHandler {
    private static readonly DEFAULT_PERMISSIONS;
    private static readonly DEFAULT_LOCATION;
    /**
     * Configure permissions for a browser context or page
     */
    static configurePermissions(pageOrContext: Page | BrowserContext, options?: {
        permissions?: string[];
        geolocation?: GeolocationOptions;
        autoAcceptDialogs?: boolean;
    }): Promise<void>;
    /**
     * Inject permission mocking scripts into the page
     */
    private static injectPermissionMocks;
    /**
     * Set up dialog handler for permission prompts
     */
    private static setupDialogHandler;
    /**
     * Get all permission requests made during the session
     */
    static getPermissionRequests(page: Page): Promise<PermissionRequest[]>;
    /**
     * Check if a specific permission was requested
     */
    static wasPermissionRequested(page: Page, permissionType: string): Promise<boolean>;
    /**
     * Wait for a permission request
     */
    static waitForPermissionRequest(page: Page, permissionType: string, timeout?: number): Promise<boolean>;
}
declare global {
    interface Window {
        permissionRequests: PermissionRequest[];
    }
}
//# sourceMappingURL=browser-permission-handler.d.ts.map