export interface AndroidDevice { id: string; status: "device" | "offline" | "unauthorized" | "no permissions" | string; product?: string; model?: string; device?: string; transportId?: string; } export interface AdbResult { success: boolean; result?: string; error?: string; data?: Buffer; scaleFactor?: number; originalWidth?: number; originalHeight?: number; devices?: AndroidDevice[]; } export declare function isAdbAvailable(): Promise; export declare function resetAdbAvailabilityCache(): void; export declare function listAndroidDevices(): Promise; export declare function getDefaultAndroidDevice(): Promise; export declare function getAndroidEmulatorAvds(): Promise; export declare function getAdbIdForAvd(avdName: string): Promise; export declare function androidScreenshot(outputPath?: string, deviceId?: string, signal?: AbortSignal): Promise; export declare function androidInstallApp(apkPath: string, deviceId?: string, options?: { replace?: boolean; grantPermissions?: boolean; }): Promise; export declare function androidLaunchApp(packageName: string, activityName?: string, deviceId?: string): Promise; export declare function androidListPackages(deviceId?: string, filter?: string): Promise; export declare const ANDROID_KEY_EVENTS: { readonly HOME: 3; readonly BACK: 4; readonly CALL: 5; readonly END_CALL: 6; readonly VOLUME_UP: 24; readonly VOLUME_DOWN: 25; readonly POWER: 26; readonly CAMERA: 27; readonly CLEAR: 28; readonly TAB: 61; readonly ENTER: 66; readonly DEL: 67; readonly MENU: 82; readonly SEARCH: 84; readonly MEDIA_PLAY_PAUSE: 85; readonly MEDIA_STOP: 86; readonly MEDIA_NEXT: 87; readonly MEDIA_PREVIOUS: 88; readonly MOVE_HOME: 122; readonly MOVE_END: 123; readonly APP_SWITCH: 187; readonly ESCAPE: 111; }; export declare function androidTap(x: number, y: number, deviceId?: string, durationMs?: number): Promise; export declare function androidLongPress(x: number, y: number, durationMs?: number, deviceId?: string): Promise; export declare function androidSwipe(startX: number, startY: number, endX: number, endY: number, durationMs?: number, deviceId?: string): Promise; export declare function androidInputText(text: string, deviceId?: string): Promise; export declare function androidKeyEvent(keyCode: number | keyof typeof ANDROID_KEY_EVENTS, deviceId?: string): Promise; export interface AndroidUIElement { text: string; contentDesc: string; resourceId: string; className: string; bounds: { left: number; top: number; right: number; bottom: number; width: number; height: number; }; center: { x: number; y: number; }; clickable: boolean; enabled: boolean; focused: boolean; scrollable: boolean; selected: boolean; } export interface FindElementResult { success: boolean; found: boolean; element?: AndroidUIElement; allMatches?: AndroidUIElement[]; matchCount?: number; error?: string; } export interface WaitForElementResult extends FindElementResult { elapsedMs?: number; timedOut?: boolean; } export interface FindElementOptions { text?: string; textContains?: string; contentDesc?: string; contentDescContains?: string; resourceId?: string; index?: number; } export declare function androidGetUITree(deviceId?: string, signal?: AbortSignal): Promise<{ success: boolean; elements?: AndroidUIElement[]; rawXml?: string; error?: string; }>; export type AndroidUITree = Awaited>; export declare function androidFindElement(options: FindElementOptions, deviceId?: string, signal?: AbortSignal, tree?: AndroidUITree): Promise; export declare function androidWaitForElement(options: FindElementOptions & { timeoutMs?: number; pollIntervalMs?: number; }, deviceId?: string): Promise; export declare function androidGetScreenSize(deviceId?: string): Promise<{ success: boolean; width?: number; height?: number; error?: string; }>; export declare function androidGetDensity(deviceId?: string): Promise<{ success: boolean; density?: number; error?: string; }>; export declare function androidGetStatusBarHeight(deviceId?: string): Promise<{ success: boolean; heightPixels?: number; heightDp?: number; error?: string; }>; export interface AndroidAccessibilityElement { class: string; text?: string; contentDesc?: string; resourceId?: string; bounds: { left: number; top: number; right: number; bottom: number; }; frame: { x: number; y: number; width: number; height: number; }; tap: { x: number; y: number; }; children: AndroidAccessibilityElement[]; checkable?: boolean; checked?: boolean; clickable?: boolean; enabled?: boolean; focusable?: boolean; focused?: boolean; scrollable?: boolean; selected?: boolean; } export interface AndroidDescribeResult { success: boolean; elements?: AndroidAccessibilityElement[]; formatted?: string; error?: string; } export declare function androidDescribeAll(deviceId?: string): Promise; export declare function androidDescribePoint(x: number, y: number, deviceId?: string): Promise; export declare function androidTapElement(options: { text?: string; textContains?: string; contentDesc?: string; contentDescContains?: string; resourceId?: string; index?: number; deviceId?: string; }): Promise; export declare function resolveAdbSerialForDeviceName(deviceName: string): Promise; //# sourceMappingURL=android.d.ts.map