/**
 * Resolve UDID with intelligent fallback
 *
 * Why: Enable auto-detection for better UX.
 * Fallback order:
 * 1. Explicit UDID if provided
 * 2. Last used booted simulator (preferred for development)
 * 3. First booted target (any type)
 *
 * @param udid - Optional explicit UDID
 * @returns Resolved UDID
 * @throws McpError if no suitable target found
 */
export declare function resolveIdbUdid(udid?: string): Promise<string>;
/**
 * Validate device is ready for operations
 *
 * Why: Physical devices require USB connection + idb_companion daemon.
 * Better to fail fast with actionable error than cryptic IDB failure.
 *
 * @param udid - Target UDID to validate
 * @throws McpError if device not ready
 */
export declare function validateDeviceReady(udid: string): Promise<void>;
/**
 * Validate target exists and is booted
 *
 * Why: Most IDB operations require target to be booted.
 * Provide actionable error instead of cryptic IDB failure.
 *
 * @param udid - Target UDID
 * @returns Target details if valid
 * @throws McpError if target not found or not booted
 */
export declare function validateTargetBooted(udid: string): Promise<import("../state/idb-target-cache.js").IDBTarget>;
//# sourceMappingURL=idb-device-detection.d.ts.map