import { Page } from 'playwright';
import { BrowserConfig, NavigationOptions, PageLoadResult } from '../types';
import { EventEmitter } from 'events';
/**
 * Headless browser lifecycle management
 * Handles Playwright browser instances and page management
 */
export declare class BrowserManager extends EventEmitter {
    private browser;
    private context;
    private config;
    private activePagesCount;
    constructor(config: BrowserConfig);
    /**
     * Initialize browser instance
     */
    initialize(): Promise<void>;
    /**
     * Create new page instance with event handlers
     * @returns Page instance
     */
    createPage(): Promise<Page>;
    /**
     * Navigate to URL with comprehensive error handling and monitoring
     * @param page - Page instance
     * @param url - URL to navigate to
     * @param options - Navigation options
     */
    navigateToUrl(page: Page, url: string, options?: NavigationOptions): Promise<PageLoadResult>;
    /**
     * Close a specific page and update tracking
     * @param page - Page to close
     */
    closePage(page: Page): Promise<void>;
    /**
     * Get current browser and context status
     */
    getStatus(): {
        initialized: boolean;
        activePagesCount: number;
        browserConnected: boolean;
    };
    /**
     * Cleanup browser resources
     */
    cleanup(): Promise<void>;
    /**
     * Set storage state (cookies, localStorage, etc.) for the browser context
     */
    setStorageState(storageState: any): Promise<void>;
    /**
     * Set up comprehensive page event handlers
     * @private
     */
    private setupPageEventHandlers;
    /**
     * Categorize error types for better error handling
     * @private
     */
    private categorizeError;
    /**
     * Simple wait utility
     * @private
     */
    private wait;
}
//# sourceMappingURL=browser-manager.d.ts.map