import { normalizeDeviceDescriptor } from "./mobileDevice.js"; import type { DeviceDescriptor } from "./mobileDevice.js"; export { parseSimctlDevices, parseSimctlRuntimes, parseSimctlDeviceTypes, compareVersions, newestRuntime, productFamilyForDeviceType, newestDeviceType, planSimulatorAcquisition, createSimulatorRegistry, acquireSimulator, teardownSimulatorRegistry, normalizeDeviceDescriptor, buildAcquireSimulatorDeps, }; export type { DeviceDescriptor, SimDevice, SimRuntime, SimDeviceType, SimulatorRegistry, SimulatorEntry, SimulatorAcquisition, }; interface SimDevice { udid: string; name: string; state: string; runtime: string; isAvailable?: boolean; deviceTypeIdentifier?: string; } interface SimRuntime { identifier: string; version: string; name: string; isAvailable: boolean; platform?: string; } interface SimDeviceType { identifier: string; name: string; productFamily?: string; } declare function parseSimctlDevices(text: string): SimDevice[]; declare function parseSimctlRuntimes(text: string): SimRuntime[]; declare function parseSimctlDeviceTypes(text: string): SimDeviceType[]; declare function compareVersions(a: string, b: string): number; declare function newestRuntime(runtimes: SimRuntime[]): SimRuntime | null; declare function productFamilyForDeviceType(deviceType?: string): "iPhone" | "iPad"; declare function newestDeviceType(deviceTypes: SimDeviceType[], family: "iPhone" | "iPad"): SimDeviceType | null; type SimulatorAcquisition = { action: "reuse-booted"; name: string; udid: string; } | { action: "boot"; name: string; udid: string; } | { action: "create-boot"; name: string; deviceTypeId: string; runtimeId: string; } | { action: "skip"; reason: string; }; declare function planSimulatorAcquisition(desc: DeviceDescriptor, { devices, runtimes, deviceTypes, }: { devices: SimDevice[]; runtimes: SimRuntime[]; deviceTypes: SimDeviceType[]; }): SimulatorAcquisition; interface SimulatorEntry { name: string; udid: string; bootedByUs: boolean; ready?: Promise; } type SimulatorRegistry = Map; declare function createSimulatorRegistry(): SimulatorRegistry; interface AcquireSimulatorDeps { listDevices: () => Promise; listRuntimes: () => Promise; listDeviceTypes: () => Promise; create: (args: { name: string; deviceTypeId: string; runtimeId: string; }) => Promise<{ udid: string; }>; boot: (udid: string) => Promise; log?: (message: string) => void; } declare function acquireSimulator({ desc, registry, deps, }: { desc: DeviceDescriptor; registry: SimulatorRegistry; deps: AcquireSimulatorDeps; }): Promise<{ entry: SimulatorEntry; } | { skip: string; }>; declare function teardownSimulatorRegistry(registry: SimulatorRegistry, shutdown: (entry: SimulatorEntry) => Promise): Promise; declare function buildAcquireSimulatorDeps(log?: (m: string) => void): AcquireSimulatorDeps & { shutdown: (entry: SimulatorEntry) => Promise; }; //# sourceMappingURL=iosSimulator.d.ts.map