import type { DefaultCreateSessionResult, DriverData, ExternalDriver, HTTPMethod, InitialOpts, StringRecord } from '@appium/types';
import { BaseDriver } from 'appium/driver';
import { Chromedriver } from 'appium-chromedriver';
import { type CDConstraints } from './desired-caps';
import type { W3CChromiumDriverCaps, ChromiumDriverCaps } from './types';
export declare class ChromiumDriver extends BaseDriver<CDConstraints, StringRecord> implements ExternalDriver<CDConstraints, string, StringRecord> {
    desiredCapConstraints: {
        readonly chromedriverPort: {
            readonly isNumber: true;
        };
        readonly useSystemExecutable: {
            readonly isBoolean: true;
        };
        readonly executable: {
            readonly isString: true;
        };
        readonly executableDir: {
            readonly isString: true;
        };
        readonly verbose: {
            readonly isBoolean: true;
        };
        readonly logPath: {
            readonly isString: true;
        };
        readonly autodownloadEnabled: {
            readonly isBoolean: true;
        };
        readonly disableBuildCheck: {
            readonly isBoolean: true;
        };
        readonly browserName: {
            readonly isString: true;
        };
    };
    proxyReqRes: ((...args: any[]) => any) | null;
    proxyCommand?: <TReq = any, TRes = unknown>(url: string, method: HTTPMethod, body?: TReq) => Promise<TRes>;
    doesSupportBidi: boolean;
    private _proxyActive;
    private _cd;
    private _bidiProxyUrl;
    constructor(opts?: InitialOpts);
    get bidiProxyUrl(): string | null;
    get cd(): Chromedriver;
    proxyActive(): boolean;
    canProxy(): boolean;
    validateDesiredCaps(caps: any): caps is ChromiumDriverCaps;
    createSession(jsonwpDesiredCapabilities: W3CChromiumDriverCaps, jsonwpRequiredCaps?: W3CChromiumDriverCaps, w3cCapabilities?: W3CChromiumDriverCaps, driverData?: DriverData[]): Promise<DefaultCreateSessionResult<CDConstraints>>;
    startChromedriverSession(): Promise<ChromiumDriverCaps>;
    deleteSession(sessionId?: string): Promise<void>;
    /**
     * Exclude browser-specific capabilities (e.g. `goog:chromeOptions` and `ms:edgeOptions`)
     * from the capabilities to skip validation error for unrecognized capabilities.
     * @param caps
     * @returns
     */
    private excludeBrowserPrefixCaps;
    private getBrowserInfo;
    /**
     * FIXME: Please use this driver's local storage instead of the node_modules path
     * to avoid potential read-only issue.
     * Please update the `appium driver run chromium install-chromedriver` command behavior
     * also to reflect the change.
     * This change is a breaking change.
     */
    private getDefaultChromeDriverDir;
    private getExecutable;
    private getExecutableDir;
    private getBrowserDriverStrategy;
    private getSessionCaps;
}
export default ChromiumDriver;
//# sourceMappingURL=driver.d.ts.map