import type { AppiumLogger, StringRecord } from '@appium/types';
import type { NoSessionProxy } from './no-session-proxy';
import type { XcodeBuild } from './xcodebuild';
import type { AppleDevice, RealDevicePreinstalledHostOps, RealDeviceXcodebuildHostOps, SimulatorHostOps, WdaHostOps, WdaStartupStrategyName } from './types';
export interface WdaStartupStrategy {
    readonly name: WdaStartupStrategyName;
    launch(sessionId: string): Promise<StringRecord | null>;
    quit(): Promise<void>;
}
export interface WdaStartupStrategyContext {
    readonly argsWebDriverAgentUrl?: string;
    readonly webDriverAgentUrl?: string;
    readonly usePreinstalledWDA?: boolean;
    readonly useXctestrunFile?: boolean;
    readonly usePrebuiltWDA?: boolean;
    readonly prebuildWDA?: boolean;
    readonly isRealDevice: boolean;
    readonly device: AppleDevice;
    readonly agentPath: string;
    readonly bootstrapPath: string;
    readonly bundleIdForXctest: string;
    readonly wdaLocalPort?: number;
    readonly wdaRemotePort: number;
    readonly wdaBindingIP?: string;
    readonly wdaLaunchTimeout: number;
    readonly mjpegServerPort?: number;
    readonly maxHttpRequestBodySize?: number;
    readonly platformName?: string;
    readonly platformVersion?: string;
    readonly log: AppiumLogger;
    readonly hostOps: Required<WdaHostOps>;
    setWebDriverAgentUrl(value?: string): void;
    setUrl(value: string): void;
    setupProxies(sessionId: string): void;
    getStatus(timeoutMs?: number): Promise<StringRecord | null>;
    cleanupProjectIfFresh(): Promise<void>;
    xcodebuild(): XcodeBuild;
    noSessionProxy(): NoSessionProxy;
    setStarted(started: boolean): void;
}
/**
 * Selects the WDA startup strategy for the provided launch arguments.
 */
export declare function selectWdaStartupStrategyName(args: {
    realDevice?: boolean;
    webDriverAgentUrl?: string;
    usePreinstalledWDA?: boolean;
}): WdaStartupStrategyName;
/**
 * Creates a WDA startup strategy for the current facade state.
 */
export declare function createWdaStartupStrategy(ctx: WdaStartupStrategyContext): WdaStartupStrategy;
/**
 * Creates default host operations for flows the package can own directly.
 */
export declare function createDefaultWdaHostOps(): Required<WdaHostOps>;
/**
 * Creates default simulator host operations.
 */
export declare function createDefaultSimulatorWdaHostOps(): SimulatorHostOps;
/**
 * Creates default real-device preinstalled host operations.
 */
export declare function createDefaultRealDevicePreinstalledHostOps(): RealDevicePreinstalledHostOps;
/**
 * Creates default real-device xcodebuild host operations.
 */
export declare function createDefaultRealDeviceXcodebuildHostOps(): RealDeviceXcodebuildHostOps;
//# sourceMappingURL=wda-strategies.d.ts.map