import type { XcodeVersion } from 'appium-xcode';
import type { StringRecord } from '@appium/types';
export declare const SAFARI_STARTUP_TIMEOUT_MS: number;
export declare const MOBILE_SAFARI_BUNDLE_ID = "com.apple.mobilesafari";
export declare const SIMULATOR_APP_NAME = "Simulator.app";
export declare const MIN_SUPPORTED_XCODE_VERSION = 14;
export interface SimulatorInfoOptions {
    devicesSetPath?: string | null;
}
/**
 * @param timeout - Timeout in milliseconds (default: DEFAULT_SIM_SHUTDOWN_TIMEOUT_MS).
 * @returns Promise that resolves when all simulators are killed.
 */
export declare function killAllSimulators(timeout?: number): Promise<void>;
/**
 * @param udid - The simulator UDID.
 * @param opts - Options including devicesSetPath.
 * @returns Promise that resolves to simulator info or undefined if not found.
 */
export declare function getSimulatorInfo(udid: string, opts?: SimulatorInfoOptions): Promise<any>;
/**
 * @param udid - The simulator UDID.
 * @returns Promise that resolves to true if simulator exists, false otherwise.
 */
export declare function simExists(udid: string): Promise<boolean>;
/**
 * @returns Promise that resolves to the developer root path.
 */
export declare function getDeveloperRoot(): Promise<string>;
/**
 * Asserts that the Xcode version meets the minimum supported version requirement.
 *
 * @template V - The Xcode version type.
 * @param xcodeVersion - The Xcode version to check.
 * @returns The same Xcode version if it meets the requirement.
 * @throws {Error} If the Xcode version is below the minimum supported version.
 */
export declare function assertXcodeVersion<V extends XcodeVersion>(xcodeVersion: V): V;
/**
 * @param simctlOpts - Optional simctl options
 * @returns Promise that resolves to a record of devices grouped by SDK version
 */
export declare function getDevices(simctlOpts?: StringRecord): Promise<Record<string, any[]>>;
/**
 * Checks whether the given value is a plain object.
 */
export declare function isPlainObject(value: unknown): value is Record<string, any>;
/**
 * Escapes regexp control characters in a string.
 */
export declare function escapeRegExp(value: string): string;
//# sourceMappingURL=utils.d.ts.map