import type { ActionAdapter, ActionExecutionContext } from '../core/types.js'; export type AppLifecyclePlatform = 'android' | 'ios-simulator'; export type AppLifecycleCommand = 'launch' | 'foreground' | 'background' | 'terminate' | 'restart'; export interface AppLifecycleTarget { platform: AppLifecyclePlatform; /** Android adb serial or iOS simulator UDID/name. */ deviceId?: string; /** Android package name or iOS bundle id. */ appId: string; /** Optional deep link used for Expo/dev-client launch and foreground. */ launchUrl?: string; /** Optional Metro port to reverse on Android before opening Expo/dev-client. */ metroPort?: string | number; /** Optional host-side calls to run immediately before launch/foreground. */ prelaunchCalls?: AppLifecycleCall[]; } export interface AppLifecycleExecResult { stdout?: string; stderr?: string; } export interface AppLifecycleCommandRunner { execFile(file: string, args: string[], options?: { timeoutMs?: number; }): Promise; } export interface AppLifecycleCall { file: string; args: string[]; ignoreFailureWhenOutputIncludes?: string[]; } export interface AppLifecycleTargetProvider { resolveTarget(node: Record, context: ActionExecutionContext): Promise | AppLifecycleTarget; } export interface CreateAppLifecycleAdapterOptions { actions?: Iterable; targetProvider: AppLifecycleTargetProvider; commandRunner?: AppLifecycleCommandRunner; } export declare function createAppLifecycleAdapters(options: CreateAppLifecycleAdapterOptions): ActionAdapter[]; export declare function createAppLifecycleAdapter(options: CreateAppLifecycleAdapterOptions): ActionAdapter; //# sourceMappingURL=app-lifecycle.d.ts.map