import type { StringRecord } from '@appium/types';
import type { RunXCTestResult } from '../commands/types';
import type { RemoteXPCFacade } from './remote-xpc';
/**
 * Run an XCTest suite via RemoteXPC using the high-level XCTestRunner.
 *
 * The XCTestRunner handles the full lifecycle internally:
 * 1. Service discovery (testmanagerd, DVT, InstallationProxy) via single RemoteXPC connection
 * 2. App lookup to resolve test bundle paths
 * 3. Exec/control session initialization
 * 4. Test runner process launch via ProcessControl
 * 5. XCTestConfiguration delivery and test plan execution
 * 6. Event-driven completion with typed callbacks
 * 7. Cleanup (kill process, close connections)
 *
 * Per-test results are collected via XCTestRunner's 'xctest' events.
 */
export declare function runXCTestViaRemoteXPC(udid: string, testRunnerBundleId: string, appUnderTestBundleId: string, xctestBundleId: string, facade: RemoteXPCFacade, testType?: 'app' | 'ui' | 'logic', args?: string[], env?: StringRecord, timeout?: number): Promise<RunXCTestResult>;
/**
 * List XCTest bundles installed on the device via RemoteXPC.
 * Uses InstallationProxy to browse apps and filter for xctrunner bundles.
 */
export declare function listXCTestBundlesViaRemoteXPC(udid: string, facade: RemoteXPCFacade): Promise<string[]>;
/**
 * Install an XCTest bundle via RemoteXPC.
 * Only supports .ipa and .app bundles (not bare .xctest directories).
 */
export declare function installXCTestBundleViaRemoteXPC(udid: string, xctestApp: string, facade: RemoteXPCFacade): Promise<void>;
//# sourceMappingURL=xctest-remotexpc.d.ts.map