/** * Permissions Handler * * P1 - Browser permissions management * * Supports: * - Grant/revoke permissions * - Permission state checking * - Common permission presets * - Permission change tracking * * @see https://playwright.dev/docs/emulation */ export type PermissionType = 'geolocation' | 'midi' | 'notifications' | 'camera' | 'microphone' | 'clipboard-read' | 'clipboard-write' | 'payment-handler' | 'accelerometer' | 'ambient-light-sensor' | 'background-sync' | 'gyroscope' | 'magnetometer' | 'midi-sysex' | 'nfc' | 'speaker-selection'; export type PermissionState = 'granted' | 'denied' | 'prompt' | 'unsupported'; export interface PermissionConfig { /** Permissions to auto-grant */ grant?: PermissionType[]; /** Permissions to auto-deny */ deny?: PermissionType[]; /** Track permission changes */ trackChanges?: boolean; } export interface PermissionChange { permission: PermissionType; from: PermissionState; to: PermissionState; timestamp: number; } /** * Permission presets for common scenarios */ export declare const PERMISSION_PRESETS: Record; /** * Permissions Handler class */ export declare class PermissionsHandler { private granted; private denied; private changes; private trackChanges; constructor(config?: PermissionConfig); /** * Grant permissions for a context */ grantPermissions(context: any, permissions: PermissionType | PermissionType[]): Promise; /** * Clear all permissions for a context */ clearPermissions(context: any): Promise; /** * Check if a permission is granted */ isGranted(permission: PermissionType): boolean; /** * Check if a permission is denied */ isDenied(permission: PermissionType): boolean; /** * Get permission state */ getState(permission: PermissionType): 'granted' | 'denied' | 'prompt'; /** * Get all granted permissions */ getGrantedPermissions(): PermissionType[]; /** * Get all denied permissions */ getDeniedPermissions(): PermissionType[]; /** * Apply a preset of permissions */ applyPreset(context: any, preset: string | PermissionType[]): Promise; /** * Get permission state from page (what the page sees) */ getPagePermissionState(page: any, permission: PermissionType): Promise; /** * Watch for permission changes on a page */ watchPermissionChanges(page: any, permission: PermissionType, callback: (state: PermissionState) => void): Promise; /** * Get permission changes history */ getChanges(): PermissionChange[]; /** * Clear permission changes history */ clearChanges(): void; /** * Map our permission names to PermissionDescriptor names */ private mapPermissionName; /** * Get all available presets */ getAvailablePresets(): string[]; /** * Get permissions in a preset */ getPresetPermissions(preset: string): PermissionType[] | undefined; /** * Create a custom preset */ createPreset(name: string, permissions: PermissionType[]): void; } /** * Factory function to create Permissions Handler */ export declare function createPermissionsHandler(config?: PermissionConfig): PermissionsHandler; export default PermissionsHandler;