/**
 * @webrtc2/types
 *
 * Core TypeScript type definitions for WebRTC2 ecosystem
 */
interface RTCConnectionConfig {
    iceServers: RTCIceServer[];
    iceTransportPolicy?: RTCIceTransportPolicy;
    bundlePolicy?: RTCBundlePolicy;
}
type ConnectionState = 'new' | 'connecting' | 'connected' | 'disconnected' | 'failed' | 'closed';
interface MediaDeviceInfo {
    deviceId: string;
    kind: 'audioinput' | 'audiooutput' | 'videoinput';
    label: string;
    groupId: string;
}
interface MediaStreamConstraints {
    video?: boolean | MediaTrackConstraints;
    audio?: boolean | MediaTrackConstraints;
}
interface SignalingMessage {
    type: 'offer' | 'answer' | 'ice-candidate' | 'join' | 'leave';
    payload: any;
    from: string;
    to: string;
    timestamp: number;
}
interface Room {
    id: string;
    name: string;
    participants: Participant[];
    createdAt: Date;
    settings: RoomSettings;
}
interface Participant {
    id: string;
    name: string;
    isHost: boolean;
    stream?: MediaStream;
    connectionState: ConnectionState;
}
interface RoomSettings {
    maxParticipants: number;
    requiresPassword: boolean;
    allowScreenShare: boolean;
    allowRecording: boolean;
}
interface WebRTCEvent {
    type: string;
    data: any;
    timestamp: number;
}
declare const VERSION = "1.0.0";

export { type ConnectionState, type MediaDeviceInfo, type MediaStreamConstraints, type Participant, type RTCConnectionConfig, type Room, type RoomSettings, type SignalingMessage, VERSION, type WebRTCEvent };
