import { describe } from 'vitest';
import '../ffi_client.cjs';
import { m as RoomOptions, j as Room, l as RoomEvent } from '../audio_stream-BNVaONuH.cjs';
import '@livekit/rtc-ffi-bindings';
import '@livekit/typed-emitter';
import 'node:stream/web';
import '../audio_frame.cjs';
import '../frame_processor.cjs';
import '../video_frame.cjs';
import '../audio_source.cjs';
import '../types-f7wTlFjs.cjs';
import '../e2ee.cjs';
import '@livekit/mutex';
import 'node:fs';
import '../data_streams/stream_writer.cjs';
import '../rpc.cjs';
import '../transcription.cjs';
import '../types.cjs';
import '../video_source.cjs';

declare const hasE2EEnv: boolean;
declare const describeE2E: typeof describe;
declare const testTimeoutMs = 10000;
type TestEnv = {
    url: string;
    apiKey: string;
    apiSecret: string;
};
declare function getTestEnv(): TestEnv;
declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, message: string): Promise<T>;
declare function waitFor(condition: () => boolean, opts: {
    timeoutMs: number;
    intervalMs?: number;
    debugName?: string;
}): Promise<void>;
declare function createJoinToken(params: {
    env: TestEnv;
    roomName: string;
    identity: string;
    name: string;
}): Promise<string>;
declare function connectTestRooms(count: number, 
/**
 * Extra room options applied to every room, e.g. data stream limits or
 * `encryption` to bring up the whole set with a shared e2ee key.
 */
options?: Partial<RoomOptions>): Promise<{
    roomName: string;
    rooms: Room[];
}>;
declare function waitForRoomEvent<R>(room: Room, event: RoomEvent, timeoutMs: number, take: (...args: any[]) => R, 
/** Ignore emissions that don't match, e.g. events for another participant. */
match?: (...args: unknown[]) => boolean): Promise<R>;
declare function concatUint8(chunks: Uint8Array[]): Uint8Array;

export { type TestEnv, concatUint8, connectTestRooms, createJoinToken, describeE2E, getTestEnv, hasE2EEnv, testTimeoutMs, waitFor, waitForRoomEvent, withTimeout };
