import { ConnectionQuality, Track as LKTrack, type Participant as LKParticipant, type Room, type TrackPublication } from 'livekit-client'; import type { Participant } from '../../core/types/participant.types'; import type { Track, TrackKind } from '../../core/types/track.types'; import type { NetworkQuality } from '../../core/types/events.types'; import type { DeviceKind } from '../../core/types/media.types'; import type { RoomInfo } from '../../core/types/room.types'; /** * Stateless mapper for converting LiveKit types to SDK types. */ export declare class LiveKitMapper { /** * Converts a LiveKit Participant to SDK Participant. */ static toParticipant(lkParticipant: LKParticipant): Participant; /** * Converts a LiveKit TrackPublication to SDK Track. */ static toTrack(publication: TrackPublication, participant: Participant): Track; /** * Converts a LiveKit Track.Source to SDK TrackKind. */ static toTrackKind(source: LKTrack.Source): TrackKind; /** * Converts a LiveKit ConnectionQuality to SDK NetworkQuality. */ static toNetworkQuality(quality: ConnectionQuality): NetworkQuality; private static extractRole; private static parseMetadata; /** * Build RoomInfo from a connected LiveKit Room. * * Uses public `room.name` and `room.getSid()` where available. * `createdAt` falls back to `room.roomInfo.creationTime` (internal * field) because livekit-client@2.18.6 does not expose a public * getter for it — migrate this single call site if upstream adds one. * * Must be called only after `room.connect()` has resolved. */ static toRoomInfo(room: Room): Promise; /** * Converts a Web API MediaDeviceKind to SDK DeviceKind. * * @param kind - MediaDeviceKind from LiveKit/Web API * @returns SDK DeviceKind or null if unknown kind */ static toDeviceKind(kind: MediaDeviceKind): DeviceKind | null; } //# sourceMappingURL=livekit.mapper.d.ts.map