import type { MaybePromiseLike } from "@yume-chan/async"; import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra"; import type { ScrcpyBackOrScreenOnControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySetClipboardControlMessage, ScrcpyUHidCreateControlMessage, ScrcpyUHidOutputDeviceMessage, } from "../latest.js"; import type { ScrcpyAudioStreamMetadata } from "./audio.js"; import type { ScrcpyControlMessageType } from "./control-message-type.js"; import type { ScrcpyDeviceMessageParsers } from "./device-message.js"; import type { ScrcpyDisplay } from "./display.js"; import type { ScrcpyEncoder } from "./encoder.js"; import type { ScrcpyMediaStreamPacket } from "./media.js"; import type { ScrcpyScrollController } from "./scroll-controller.js"; import type { ScrcpyVideoStream } from "./video.js"; export interface ScrcpyOptions { get controlMessageTypes(): readonly ScrcpyControlMessageType[]; value: Required; readonly clipboard?: ReadableStream | undefined; readonly uHidOutput?: | ReadableStream | undefined; readonly deviceMessageParsers: ScrcpyDeviceMessageParsers; serialize(): string[]; setListDisplays(): void; parseDisplay(line: string): ScrcpyDisplay | undefined; parseVideoStreamMetadata( stream: ReadableStream, ): MaybePromiseLike; parseAudioStreamMetadata?( stream: ReadableStream, ): MaybePromiseLike; createMediaStreamTransformer(): TransformStream< Uint8Array, ScrcpyMediaStreamPacket >; serializeInjectTouchControlMessage( message: ScrcpyInjectTouchControlMessage, ): Uint8Array; serializeBackOrScreenOnControlMessage( message: ScrcpyBackOrScreenOnControlMessage, ): Uint8Array | undefined; serializeSetClipboardControlMessage( message: ScrcpySetClipboardControlMessage, ): Uint8Array | [Uint8Array, Promise]; createScrollController(): ScrcpyScrollController; serializeUHidCreateControlMessage?( message: ScrcpyUHidCreateControlMessage, ): Uint8Array; } export interface ScrcpyOptionsListEncoders { setListEncoders(): void; parseEncoder(line: string): ScrcpyEncoder | undefined; }