import type { AppiumLogger } from '@appium/types';
import { type Simulator } from 'appium-ios-simulator';
import type { XCUITestDriverOpts } from '../driver';
import { RealDevice } from './real-device-management';
export interface DeviceDiscoveryResult {
    device: Simulator | RealDevice;
    realDevice: boolean;
    udid: string;
    createdSimulator: boolean;
    iosSdkVersion: string | null;
    platformVersion?: string;
}
export interface DeviceDiscoveryOptions {
    driverOpts: XCUITestDriverOpts;
    log: AppiumLogger;
    detectUdid: () => Promise<string>;
    getExistingSimulator: (opts: XCUITestDriverOpts) => Promise<Simulator | null | undefined>;
    createSimulator: (opts: XCUITestDriverOpts) => Promise<Simulator>;
}
export declare class DeviceDiscovery {
    private readonly config;
    private createdSimulator;
    private iosSdkVersion;
    private platformVersion;
    constructor(config: DeviceDiscoveryOptions);
    private get log();
    private get sessionOpts();
    private get resolvedSessionOpts();
    determine(): Promise<DeviceDiscoveryResult>;
    private selectStrategy;
    private setupSimulatorPlatformVersion;
    private ensurePlatformVersion;
    private createRealDeviceForUdid;
    private determineDeviceWithAutoUdid;
    private determineDeviceWithExplicitUdid;
    private determineSimulatorWithExplicitUdid;
    private determineSimulatorDevice;
    private toResult;
}
//# sourceMappingURL=device-discovery.d.ts.map