import { Page } from 'playwright'; export interface BrowserConfig { headless?: boolean; timeout?: number; viewport?: { width: number; height: number; }; downloadPath?: string; } export interface ClassificationSocietyCredentials { username: string; password: string; email?: string; emailPassword?: string; } export declare class BrowserAutomation { private browserConfig; private browser; private context; private page; protected downloadPath: string; constructor(browserConfig?: BrowserConfig); private ensureDownloadDirectory; initialize(): Promise; cleanup(): Promise; getPage(): Page; waitForDownload(timeout?: number): Promise; solveCaptchaWithOpenAI(captchaImageSelector: string): Promise; handlePopup(action: () => Promise): Promise; waitForNetworkIdle(timeout?: number): Promise; takeScreenshot(filename?: string): Promise; } export declare class CCSAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class NKAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class KRAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class DNVAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class LRAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class BVAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; } export declare class ABSAutomation extends BrowserAutomation { downloadSurveyStatus(vesselName: string, credentials: ClassificationSocietyCredentials): Promise; }