import { ClassValue } from 'clsx';

export declare const fetchDevices: () => Promise<{
    micList: MediaDeviceInfo[];
    speakerList: MediaDeviceInfo[];
    cameraList: MediaDeviceInfo[];
}>;
export declare const getRequiredEnv: (key: string) => string;
export declare const getOptionalEnv: (key: string) => string;
export interface GenerateSignatureParams {
    sdkKey: string;
    sdkSecret: string;
    sessionName: string;
    role: 0 | 1;
    expirationSeconds?: number;
    userIdentity?: string;
    sessionKey?: string;
    geoRegions?: string[];
    cloudRecordingOption?: 0 | 1;
    cloudRecordingElection?: 0 | 1;
    telemetryTrackingId?: string;
    videoWebRtcMode?: 0 | 1;
    audioWebRtcMode?: 0 | 1;
    cloud_recording_option?: 0 | 1;
    cloud_recording_election?: 0 | 1;
}
/**
 * Generate a Zoom Video SDK signature (JWT)
 *
 * @param params - Parameters for generating the signature
 * @returns JWT signature string
 *
 * @example
 * ```ts
 * const signature = generateSignature({
 *   sdkKey: 'your-sdk-key',
 *   sdkSecret: 'your-sdk-secret',
 *   sessionName: 'test-session',
 *   role: 1,
 *   userIdentity: 'user123'
 * })
 * ```
 */
export declare const generateSignature: (params: GenerateSignatureParams) => string;
/**
 * Utility function that combines clsx and tailwind-merge
 * - clsx handles conditional classes and complex logic
 * - twMerge resolves Tailwind CSS class conflicts
 */
export declare function cn(...inputs: ClassValue[]): string;
