import type { Server as HttpServer } from 'node:http'; import type { AdbServerClient } from '@yume-chan/adb'; import express from 'express'; import { Server } from 'socket.io'; export declare const debugPage: import("@midscene/shared/logger").DebugFunction; export declare function appendBoundedScrcpyOutput(outputLines: string[], line: string, maxLines?: number): void; export interface ScrcpyConnectDeviceRequest { deviceId?: string; maxSize?: number; videoBitRate?: number; } export interface ScrcpyListedDevice { id: string; name: string; status: string; } export interface ScrcpyDeviceListSource { getDevices(): Promise; subscribe(listener: (devices: ScrcpyListedDevice[]) => void): () => void; } export interface ScrcpyServerOptions { /** Defaults to loopback. Set explicitly to expose previews remotely. */ host?: string; deviceListSource?: ScrcpyDeviceListSource; } export declare function resolveRequestedDeviceId(options: ScrcpyConnectDeviceRequest | undefined, currentDeviceId: string | null): string | undefined; export default class ScrcpyServer { app: express.Application; httpServer: HttpServer; io: Server; port?: number | null; defaultPort: number; adbClient: AdbServerClient | null; currentDeviceId: string | null; devicePollInterval: NodeJS.Timeout | null; readonly host: string; private deviceListSource?; private deviceListSourceUnsubscribe?; lastDeviceList: string; constructor(options?: ScrcpyServerOptions); private setupApiRoutes; private getDevicesList; private broadcastDevicesList; private getAdbClient; private getAdb; private startScrcpy; private setupSocketHandlers; launch(port?: number): Promise; private startDeviceMonitoring; close(): HttpServer | undefined; } //# sourceMappingURL=scrcpy-server.d.ts.map