/// <reference types="node" />
import * as stream from 'stream';
import * as Adb from '@devicefarmer/adbkit';
export declare const ANDROID_TEMP = "/data/local/tmp";
export declare const SYSTEM_CA_PATH = "/system/etc/security/cacerts";
export declare const EMULATOR_HOST_IPS: string[];
export declare function createAdbClient(): Adb.Client;
export declare const getConnectedDevices: (adbClient: Adb.Client) => Promise<Record<string, Record<string, string>>>;
export declare function stringAsStream(input: string): stream.Readable;
export declare function pushFile(adbClient: Adb.DeviceClient, contents: string | stream.Readable, path: string, mode?: number): Promise<unknown>;
export declare function isProbablyRooted(deviceClient: Adb.DeviceClient): Promise<boolean>;
declare type RootCmd = (...cmd: string[]) => string[];
export declare function getRootCommand(adbClient: Adb.DeviceClient): Promise<RootCmd | undefined>;
export declare function hasCertInstalled(adbClient: Adb.DeviceClient, certHash: string, expectedFingerprint: string): Promise<boolean>;
export declare function injectSystemCertificate(adbClient: Adb.DeviceClient, runAsRoot: RootCmd, certificatePath: string): Promise<void>;
export declare function setChromeFlags(adbClient: Adb.DeviceClient, runAsRoot: RootCmd, flags: string[]): Promise<void>;
export declare function bringToFront(adbClient: Adb.DeviceClient, activityName: string): Promise<void>;
export declare function startActivity(adbClient: Adb.DeviceClient, options: {
    action?: string;
    data?: string;
    retries?: number;
}): Promise<void>;
export declare function closeReverseTunnel(adbClient: Adb.DeviceClient, localPort: number | string, remotePort: number | string): void;
export declare function createPersistentReverseTunnel(adbClient: Adb.DeviceClient, localPort: number, remotePort: number, options?: {
    maxFailures: number;
    delay: number;
}): Promise<void>;
export {};
