askui
Version:
Reliable, automated end-to-end-testing that depends on what is shown on your screen instead of the technology you are running on
18 lines (17 loc) • 905 B
TypeScript
import { ControlCommand } from '../core/ui-control-commands';
import { UiControllerClientConnectionState } from './ui-controller-client-connection-state';
/**
* Transport-agnostic client for a device that AskUI automates (a desktop via the
* AgentOS gRPC service, or an Android device via the legacy UI Controller). This
* is the seam {@link ExecutionRuntime} depends on so the transport can be chosen
* per target without the execution/agent layers knowing which one is in use.
*/
export interface DeviceClient {
connectionState: UiControllerClientConnectionState;
connect(): Promise<UiControllerClientConnectionState>;
disconnect(): void;
requestControl(controlCommand: ControlCommand): Promise<void>;
requestScreenshot(): Promise<string>;
getStartingArguments(): Promise<Record<string, string | number | boolean>>;
setActiveDisplay(displayId: number): Promise<void>;
}