declare global {
	interface WebTransportCloseInfo {
		closeCode: number;
		reason: string;
	}
	interface WebTransport {
		ready: Promise<void>;
		closed: Promise<WebTransportCloseInfo>;
		datagrams?: { readable: ReadableStream, writable: WritableStream };
		close(): void;
		createBidirectionalStream(): Promise<WebTransportBidirectionalStream>;
	}
	interface WebTransportBidirectionalStream {
		readable: ReadableStream;
		writable: WritableStream;
	}
	interface VideoDecoder {
		state: string;
		configure(config: unknown): void;
		decode(chunk: unknown): void;
		close(): void;
	}
	interface VideoEncoder {
		state: string;
		configure(config: unknown): void;
		encode(frame: unknown, options?: unknown): void;
		close(): void;
	}
	interface MediaStreamTrackProcessor {
		readable: ReadableStream;
	}
	interface SpeechRecognition {
		continuous: boolean;
		interimResults: boolean;
		lang: string;
		onresult: (event: { resultIndex: number; results: unknown[] }) => void;
		onerror: (event: unknown) => void;
		start(): void;
		stop(): void;
	}
	var WebTransport: new (url: string) => WebTransport;
	var VideoDecoder: new (init: unknown) => VideoDecoder;
	var VideoEncoder: new (init: unknown) => VideoEncoder;
	var MediaStreamTrackProcessor: new (init: unknown) => MediaStreamTrackProcessor;
	var EncodedVideoChunk: new (init: unknown) => unknown;
}
export {};
