// Generated by dts-bundle-generator v9.5.1

import { Client as AdbClient, DeviceClient } from '@devicefarmer/adbkit';
import { EventEmitter } from 'node:events';

declare const deviceProps: {
	Manufacturer: string;
	Name: string;
	Model: string;
	"Android Version": string;
	Platform: string;
	CPU: string;
	"CPU.abi2": string;
	Description: string;
	Fingerprint: string;
	Brand: string;
	Device: string;
	"GSM Flexversion": string;
	"Locale Language": string;
	"Locale Region": string;
	"Wifi Channels": string;
	"Board Platform": string;
	"Product Board": string;
	"Display ID": string;
	"GSM IMEI": string;
	"Version Incremental": string;
	"Version SDK": string;
	"Version Codename": string;
	"Version Release": string;
	"Build Date": string;
	"Build Type": string;
	"Build User": string;
};
export type DeviceProperty = keyof typeof deviceProps;
export declare class AdbDeviceKit {
	private readonly port;
	private readonly config?;
	private client;
	private device;
	private deviceId;
	private devicePort;
	constructor(deviceId: string, port: number, config?: AdbClientConfig | undefined);
	private connect;
	listDevices(): Promise<Bluebird<adbkit.Device[]>>;
	private getProperty;
	getAllDeviceProperties(): Promise<Bluebird<adbkit.Properties>>;
	getDeviceProperties(properties: DeviceProperty[]): Promise<any>;
	installApp(appPath: string): Promise<void>;
	uninstallApp(packageName: string): Promise<void>;
	isAppInstalled(packageName: string): Promise<Bluebird<boolean>>;
	/**
	 * Applications have life of their own, so we need to get the client to use it in other parts of the code.
	 * @returns The adb client
	 */
	getClient(): Promise<AdbClient>;
	hasUsbDebugging(): Promise<boolean>;
	/**
	 * Creates an isolated ADB client for tracking operations.
	 * This client is separate from the main client so connection errors
	 * during tracking don't affect other operations.
	 */
	private createTrackingClient;
	private matchesDeviceId;
	waitForUsbDebugging(timeout?: number, _numberOfAllowedAttempts?: number): {
		promise: Promise<boolean>;
		events: EventEmitter;
	};
	startPortForward(serviceName: string): Promise<number | null>;
	getDeviceId(): string;
	getPort(): number;
	getDeviceClient(): Promise<DeviceClient>;
}
/**
 * USB debugging wait event names.
 * Use with EventEmitter.on/emit from waitForUsbDebugging().events.
 */
export declare const USB_DEBUGGING_EVENT_OFF = "usbDebuggingOff";
export declare const USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW = "usbDebuggingNeedsAlwaysAllow";
export declare const USB_DEBUGGING_EVENT_AUTHORIZED = "usbDebuggingAuthorized";
export declare const readAll: typeof import("@devicefarmer/adbkit/dist/src/adb/util").default.readAll;

export {};
