Skip to content

Latest commit

 

History

History
739 lines (590 loc) · 26.6 KB

components-core.api.md

File metadata and controls

739 lines (590 loc) · 26.6 KB

API Report File for "@livekit/components-core"

Do not edit this file. It is a report generated by API Extractor.

import type { AudioCaptureOptions } from 'livekit-client';
import { BehaviorSubject } from 'rxjs';
import { ChatMessage } from 'livekit-client';
import { ConnectionQuality } from 'livekit-client';
import { ConnectionState } from 'livekit-client';
import { DataPacket_Kind } from 'livekit-client';
import type { DataPublishOptions } from 'livekit-client';
import { LocalAudioTrack } from 'livekit-client';
import { LocalParticipant } from 'livekit-client';
import { LocalVideoTrack } from 'livekit-client';
import loglevel from 'loglevel';
import { Observable } from 'rxjs';
import { Participant } from 'livekit-client';
import { ParticipantEvent } from 'livekit-client';
import type { ParticipantEventCallbacks } from 'livekit-client/dist/src/room/participant/Participant';
import type { ParticipantKind } from 'livekit-client';
import type { ParticipantPermission } from '@livekit/protocol';
import type { PublicationEventCallbacks } from 'livekit-client/dist/src/room/track/TrackPublication';
import { RemoteParticipant } from 'livekit-client';
import { Room } from 'livekit-client';
import { RoomEvent } from 'livekit-client';
import type { RoomEventCallbacks } from 'livekit-client/dist/src/room/Room';
import type { ScreenShareCaptureOptions } from 'livekit-client';
import { setLogLevel as setLogLevel_2 } from 'livekit-client';
import { Track } from 'livekit-client';
import { TrackEvent as TrackEvent_2 } from 'livekit-client';
import { TrackPublication } from 'livekit-client';
import type { TrackPublishOptions } from 'livekit-client';
import { TranscriptionSegment } from 'livekit-client';
import type { VideoCaptureOptions } from 'livekit-client';

// @public (undocumented)
export function activeSpeakerObserver(room: Room): Observable<Participant[]>;

// @public (undocumented)
export function addMediaTimestampToTranscription(segment: TranscriptionSegment, timestamps: {
    timestamp: number;
    rtpTimestamp?: number;
}): ReceivedTranscriptionSegment;

// @public (undocumented)
export const allParticipantEvents: ParticipantEvent[];

// @public (undocumented)
export const allParticipantRoomEvents: RoomEvent[];

// @public (undocumented)
export const allRemoteParticipantEvents: ParticipantEvent[];

// @public (undocumented)
export const allRemoteParticipantRoomEvents: RoomEvent[];

// @public (undocumented)
export const attachIfSubscribed: (publication: TrackPublication | undefined, element: HTMLMediaElement | null | undefined) => void;

// @public (undocumented)
export type AudioSource = Track.Source.Microphone | Track.Source.ScreenShareAudio;

// @public (undocumented)
export interface BaseDataMessage<T extends string | undefined> {
    // (undocumented)
    payload: Uint8Array;
    // (undocumented)
    topic?: T;
}

// @public (undocumented)
export type CaptureOptionsBySource<T extends ToggleSource> = T extends Track.Source.Camera ? VideoCaptureOptions : T extends Track.Source.Microphone ? AudioCaptureOptions : T extends Track.Source.ScreenShare ? ScreenShareCaptureOptions : never;

export { ChatMessage }

// @public (undocumented)
export type ChatOptions = {
    messageEncoder?: (message: LegacyChatMessage) => Uint8Array;
    messageDecoder?: (message: Uint8Array) => LegacyReceivedChatMessage;
    channelTopic?: string;
    updateChannelTopic?: string;
};

// @public (undocumented)
export function computeMenuPosition(button: HTMLElement, menu: HTMLElement): Promise<{
    x: number;
    y: number;
}>;

// @public (undocumented)
export function connectedParticipantObserver(room: Room, identity: string, options?: ConnectedParticipantObserverOptions): Observable<RemoteParticipant | undefined>;

// @public (undocumented)
export type ConnectedParticipantObserverOptions = {
    additionalEvents?: ParticipantEvent[];
};

// Warning: (ae-forgotten-export) The symbol "ConnectedParticipantsObserverOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function connectedParticipantsObserver(room: Room, options?: ConnectedParticipantsObserverOptions): Observable<RemoteParticipant[]>;

// @public (undocumented)
export function connectionStateObserver(room: Room): Observable<ConnectionState>;

// @public (undocumented)
export function createActiveDeviceObservable(room: Room, kind: MediaDeviceKind): Observable<string>;

// @public (undocumented)
export function createChatObserver(room: Room): Observable<[message: ChatMessage, participant?: LocalParticipant | RemoteParticipant | undefined]>;

// @public (undocumented)
export function createConnectionQualityObserver(participant: Participant): Observable<ConnectionQuality>;

// @public (undocumented)
export function createDataObserver(room: Room): Observable<[payload: Uint8Array<ArrayBufferLike>, participant?: RemoteParticipant | undefined, kind?: DataPacket_Kind | undefined, topic?: string | undefined]>;

// @public (undocumented)
export const createDefaultGrammar: () => {
    email: RegExp;
    url: RegExp;
};

// @public (undocumented)
export function createEmailRegExp({ exact }?: {
    exact?: boolean;
}): RegExp;

// Warning: (ae-internal-missing-underscore) The name "createInteractingObservable" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export function createInteractingObservable(htmlElement: HTMLElement | null, inactiveAfter?: number): Observable<boolean>;

// @public (undocumented)
export function createIsSpeakingObserver(participant: Participant): Observable<boolean>;

// @public (undocumented)
export function createMediaDeviceObserver(kind?: MediaDeviceKind, onError?: (e: Error) => void, requestPermissions?: boolean): Observable<MediaDeviceInfo[]>;

// Warning: (ae-incompatible-release-tags) The symbol "createTrackObserver" is marked as @public, but its signature references "TrackIdentifier" which is marked as @internal
//
// @public (undocumented)
export function createTrackObserver(participant: Participant, options: TrackIdentifier): Observable<{
    publication: TrackPublication | undefined;
}>;

// Warning: (ae-forgotten-export) The symbol "RegExOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function createUrlRegExp(options: RegExOptions): RegExp;

// @public (undocumented)
export const cssPrefix = "lk";

// @public (undocumented)
export const DataTopic: {
    readonly CHAT: "lk-chat-topic";
    readonly CHAT_UPDATE: "lk-chat-update-topic";
};

// @public (undocumented)
export function dedupeSegments<T extends TranscriptionSegment>(prevSegments: T[], newSegments: T[], windowSize: number): T[];

// @public (undocumented)
export const defaultUserChoices: LocalUserChoices;

// @public (undocumented)
export function didActiveSegmentsChange<T extends TranscriptionSegment>(prevActive: T[], newActive: T[]): boolean;

// @public (undocumented)
export function encryptionStatusObservable(room: Room, participant: Participant | undefined): Observable<boolean>;

// @public (undocumented)
export function getActiveTranscriptionSegments(segments: ReceivedTranscriptionSegment[], syncTimes: {
    timestamp: number;
    rtpTimestamp?: number;
}, maxAge?: number): ReceivedTranscriptionSegment[];

// Warning: (ae-internal-missing-underscore) The name "getScrollBarWidth" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export function getScrollBarWidth(): number;

// Warning: (ae-incompatible-release-tags) The symbol "getTrackByIdentifier" is marked as @public, but its signature references "TrackIdentifier" which is marked as @internal
//
// @public (undocumented)
export function getTrackByIdentifier(options: TrackIdentifier): TrackPublication | undefined;

// @public
export function getTrackReferenceId(trackReference: TrackReferenceOrPlaceholder | number): string;

// @public
export function getTrackReferenceSource(trackReference: TrackReferenceOrPlaceholder): Track.Source;

// @public (undocumented)
export const GRID_LAYOUTS: GridLayoutDefinition[];

// @public (undocumented)
export type GridLayoutDefinition = {
    columns: number;
    rows: number;
    minWidth?: number;
    minHeight?: number;
    orientation?: 'landscape' | 'portrait';
};

// @public (undocumented)
export type GridLayoutInfo = {
    name: string;
    columns: number;
    rows: number;
    maxTiles: number;
    minWidth: number;
    minHeight: number;
    orientation?: 'landscape' | 'portrait';
};

// @public (undocumented)
export function isEqualTrackRef(a?: TrackReferenceOrPlaceholder, b?: TrackReferenceOrPlaceholder): boolean;

// @public (undocumented)
export function isLocal(p: Participant): boolean;

// @public
export function isMobileBrowser(): boolean;

// @public
export function isParticipantTrackReferencePinned(trackRef: TrackReference, pinState: PinState | undefined): boolean;

// Warning: (ae-internal-missing-underscore) The name "isPlaceholderReplacement" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export function isPlaceholderReplacement(currentTrackRef: TrackReferenceOrPlaceholder, nextTrackRef: TrackReferenceOrPlaceholder): boolean;

// @public (undocumented)
export function isRemote(p: Participant): boolean;

// @public (undocumented)
export function isSourcesWithOptions(sources: SourcesArray): sources is TrackSourceWithOptions[];

// @public (undocumented)
export function isSourceWitOptions(source: SourcesArray[number]): source is TrackSourceWithOptions;

// Warning: (ae-internal-missing-underscore) The name "isTrackReference" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export function isTrackReference(trackReference: unknown): trackReference is TrackReference;

// @public
export function isTrackReferencePinned(trackReference: TrackReferenceOrPlaceholder, pinState: PinState | undefined): boolean;

// @public (undocumented)
export function isTrackReferencePlaceholder(trackReference?: TrackReferenceOrPlaceholder): trackReference is TrackReferencePlaceholder;

// Warning: (ae-internal-missing-underscore) The name "isWeb" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export function isWeb(): boolean;

// @public (undocumented)
export interface LegacyChatMessage extends ChatMessage {
    // (undocumented)
    ignore?: boolean;
}

// @public (undocumented)
export interface LegacyReceivedChatMessage extends ReceivedChatMessage {
    // (undocumented)
    ignore?: boolean;
}

// @alpha
export function loadUserChoices(defaults?: Partial<LocalUserChoices>,
preventLoad?: boolean): LocalUserChoices;

// @public
export type LocalUserChoices = {
    videoEnabled: boolean;
    audioEnabled: boolean;
    videoDeviceId: string;
    audioDeviceId: string;
    username: string;
};

// @public (undocumented)
export const log: loglevel.Logger;

// @public (undocumented)
export type MediaToggleType<T extends ToggleSource> = {
    pendingObserver: Observable<boolean>;
    toggle: (forceState?: boolean, captureOptions?: CaptureOptionsBySource<T>) => Promise<boolean | undefined>;
    className: string;
    enabledObserver: Observable<boolean>;
};

// @public @deprecated (undocumented)
export type MessageDecoder = (message: Uint8Array) => LegacyReceivedChatMessage;

// @public @deprecated (undocumented)
export type MessageEncoder = (message: LegacyChatMessage) => Uint8Array;

// @public (undocumented)
export function mutedObserver(trackRef: TrackReferenceOrPlaceholder): Observable<boolean>;

// @public (undocumented)
export function observeParticipantEvents<T extends Participant>(participant: T, ...events: ParticipantEvent[]): Observable<T>;

// @public (undocumented)
export function observeParticipantMedia<T extends Participant>(participant: T): Observable<ParticipantMedia<T>>;

// @public (undocumented)
export function observeRoomEvents(room: Room, ...events: RoomEvent[]): Observable<Room>;

// @public (undocumented)
export function observeTrackEvents(track: TrackPublication, ...events: TrackEvent_2[]): Observable<TrackPublication>;

// @public (undocumented)
export function participantAttributesObserver(participant: Participant): Observable<{
    changed: Readonly<Record<string, string>>;
    attributes: Readonly<Record<string, string>>;
}>;

// @public (undocumented)
export function participantAttributesObserver(participant: undefined): Observable<{
    changed: undefined;
    attributes: undefined;
}>;

// Warning: (ae-incompatible-release-tags) The symbol "participantByIdentifierObserver" is marked as @public, but its signature references "ParticipantIdentifier" which is marked as @beta
//
// @public (undocumented)
export function participantByIdentifierObserver(room: Room, { kind, identity }: ParticipantIdentifier, options?: ConnectedParticipantObserverOptions): Observable<RemoteParticipant | undefined>;

// Warning: (ae-internal-missing-underscore) The name "ParticipantClickEvent" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export interface ParticipantClickEvent {
    // (undocumented)
    participant: Participant;
    // (undocumented)
    track?: TrackPublication;
}

// @public (undocumented)
export function participantEventSelector<T extends ParticipantEvent>(participant: Participant, event: T): Observable<Parameters<ParticipantEventCallbacks[Extract<T, keyof ParticipantEventCallbacks>]>>;

// @public (undocumented)
export type ParticipantFilter = Parameters<Participant[]['filter']>['0'];

// Warning: (ae-forgotten-export) The symbol "RequireAtLeastOne" needs to be exported by the entry point index.d.ts
//
// @beta (undocumented)
export type ParticipantIdentifier = RequireAtLeastOne<{
    kind: ParticipantKind;
    identity: string;
}, 'identity' | 'kind'>;

// @public (undocumented)
export function participantInfoObserver(participant?: Participant): Observable<{
    name: string | undefined;
    identity: string;
    metadata: string | undefined;
} | {
    name: string | undefined;
    identity: string;
    metadata: string | undefined;
}> | undefined;

// @public (undocumented)
export interface ParticipantMedia<T extends Participant = Participant> {
    // (undocumented)
    cameraTrack?: TrackPublication;
    // (undocumented)
    isCameraEnabled: boolean;
    // (undocumented)
    isMicrophoneEnabled: boolean;
    // (undocumented)
    isScreenShareEnabled: boolean;
    // (undocumented)
    microphoneTrack?: TrackPublication;
    // (undocumented)
    participant: T;
}

// @public (undocumented)
export function participantPermissionObserver(participant: Participant): Observable<ParticipantPermission | undefined>;

// @public (undocumented)
export const participantTrackEvents: ParticipantEvent[];

// @public (undocumented)
export type ParticipantTrackIdentifier = RequireAtLeastOne<{
    sources: Track.Source[];
    name: string;
    kind: Track.Kind;
}, 'sources' | 'name' | 'kind'>;

// @public (undocumented)
export function participantTracksObservable(participant: Participant, trackIdentifier: ParticipantTrackIdentifier): Observable<TrackReference[]>;

// @public (undocumented)
export const PIN_DEFAULT_STATE: PinState;

// @public (undocumented)
export type PinState = TrackReferenceOrPlaceholder[];

// @public (undocumented)
export interface ReceivedChatMessage extends ChatMessage {
    // (undocumented)
    from?: Participant;
}

// @public (undocumented)
export interface ReceivedDataMessage<T extends string | undefined = string> extends BaseDataMessage<T> {
    // (undocumented)
    from?: Participant;
}

// @public (undocumented)
export type ReceivedTranscriptionSegment = TranscriptionSegment & {
    receivedAtMediaTimestamp: number;
    receivedAt: number;
};

// @public (undocumented)
export function recordingStatusObservable(room: Room): Observable<boolean>;

// @public (undocumented)
export type RequireOnlyOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
    [K in Keys]-?: Required<Pick<T, K>> & Partial<Record<Exclude<Keys, K>, undefined>>;
}[Keys];

// @public (undocumented)
export function roomAudioPlaybackAllowedObservable(room: Room): Observable<{
    canPlayAudio: boolean;
}>;

// @public (undocumented)
export function roomEventSelector<T extends RoomEvent>(room: Room, event: T): Observable<Parameters<RoomEventCallbacks[T]>>;

// @public (undocumented)
export function roomInfoObserver(room: Room): Observable<{
    name: string;
    metadata: string | undefined;
}>;

// @public (undocumented)
export function roomObserver(room: Room): Observable<Room>;

// @public (undocumented)
export function roomVideoPlaybackAllowedObservable(room: Room): Observable<{
    canPlayVideo: boolean;
}>;

// @alpha
export function saveUserChoices(userChoices: LocalUserChoices,
preventSave?: boolean): void;

// @public (undocumented)
export function screenShareObserver(room: Room): Observable<ScreenShareTrackMap>;

// @public (undocumented)
export type ScreenShareTrackMap = Array<{
    participant: Participant;
    tracks: Array<TrackPublication>;
}>;

// @public (undocumented)
export function selectGridLayout(layoutDefinitions: GridLayoutDefinition[], participantCount: number, width: number, height: number): GridLayoutInfo;

// @public
export function sendMessage(localParticipant: LocalParticipant, payload: Uint8Array, options?: DataPublishOptions): Promise<void>;

// @public (undocumented)
export function setDifference<T>(setA: Set<T>, setB: Set<T>): Set<T>;

// Warning: (ae-forgotten-export) The symbol "LogExtension" needs to be exported by the entry point index.d.ts
// Warning: (ae-forgotten-export) The symbol "SetLogExtensionOptions" needs to be exported by the entry point index.d.ts
//
// @public
export function setLogExtension(extension: LogExtension, options?: SetLogExtensionOptions): void;

// Warning: (ae-forgotten-export) The symbol "LogLevel" needs to be exported by the entry point index.d.ts
// Warning: (ae-forgotten-export) The symbol "SetLogLevelOptions" needs to be exported by the entry point index.d.ts
//
// @public
export function setLogLevel(level: LogLevel, options?: SetLogLevelOptions): void;

// @public (undocumented)
export type SetMediaDeviceOptions = {
    exact?: boolean;
};

// @public (undocumented)
export function setupChat(room: Room, options?: ChatOptions): {
    messageObservable: Observable<ReceivedChatMessage[]>;
    isSendingObservable: BehaviorSubject<boolean>;
    send: (message: string) => Promise<ChatMessage>;
    update: (message: string, originalMessageOrId: string | ChatMessage) => Promise<{
        readonly message: string;
        readonly editTimestamp: number;
        readonly id: string;
        readonly timestamp: number;
    }>;
};

// @public (undocumented)
export function setupChatMessageHandler(room: Room): {
    chatObservable: Observable<[message: ChatMessage, participant?: LocalParticipant | RemoteParticipant | undefined]>;
    send: (text: string) => Promise<ChatMessage>;
    edit: (text: string, originalMsg: ChatMessage) => Promise<{
        readonly message: string;
        readonly editTimestamp: number;
        readonly id: string;
        readonly timestamp: number;
    }>;
};

// @public (undocumented)
export function setupChatToggle(): {
    className: string;
};

// @public (undocumented)
export function setupClearPinButton(): {
    className: string;
};

// @public (undocumented)
export function setupConnectionQualityIndicator(participant: Participant): {
    className: "lk-connection-quality";
    connectionQualityObserver: Observable<ConnectionQuality>;
};

// @public (undocumented)
export function setupDataMessageHandler<T extends string>(room: Room, topic?: T | [T, ...T[]], onMessage?: (msg: ReceivedDataMessage<T>) => void): {
    messageObservable: Observable<{
        payload: Uint8Array<ArrayBufferLike>;
        topic: T;
        from: RemoteParticipant | undefined;
    }>;
    isSendingObservable: Observable<boolean>;
    send: (payload: Uint8Array, options?: DataPublishOptions) => Promise<void>;
};

// @public (undocumented)
export function setupDeviceSelector(kind: MediaDeviceKind, room: Room, localTrack?: LocalAudioTrack | LocalVideoTrack): {
    className: string;
    activeDeviceObservable: Observable<string>;
    setActiveMediaDevice: (id: string, options?: SetMediaDeviceOptions) => Promise<void>;
};

// @public (undocumented)
export function setupDisconnectButton(room: Room): {
    className: string;
    disconnect: (stopTracks?: boolean) => void;
};

// @public (undocumented)
export function setupFocusToggle(): {
    className: string;
};

// @public (undocumented)
export function setupLiveKitRoom(): {
    className: string;
};

// @public (undocumented)
export function setupManualToggle(): {
    className: string;
    toggle: (forceState?: boolean) => Promise<void>;
    enabledObserver: Observable<boolean>;
    pendingObserver: Observable<boolean>;
};

// @public (undocumented)
export function setupMediaToggle<T extends ToggleSource>(source: T, room: Room, options?: CaptureOptionsBySource<T>, publishOptions?: TrackPublishOptions, onError?: (error: Error) => void): MediaToggleType<T>;

// Warning: (ae-incompatible-release-tags) The symbol "setupMediaTrack" is marked as @public, but its signature references "TrackIdentifier" which is marked as @internal
//
// @public (undocumented)
export function setupMediaTrack(trackIdentifier: TrackIdentifier): {
    className: string;
    trackObserver: Observable<TrackPublication | undefined>;
};

// @public (undocumented)
export function setupParticipantName(participant: Participant): {
    className: string;
    infoObserver: Observable<    {
    name: string | undefined;
    identity: string;
    metadata: string | undefined;
    } | {
    name: string | undefined;
    identity: string;
    metadata: string | undefined;
    }> | undefined;
};

// @public (undocumented)
export function setupParticipantTile(): {
    className: string;
};

// @public (undocumented)
export function setupStartAudio(): {
    className: string;
    roomAudioPlaybackAllowedObservable: typeof roomAudioPlaybackAllowedObservable;
    handleStartAudioPlayback: (room: Room) => Promise<void>;
};

// @public (undocumented)
export function setupStartVideo(): {
    className: string;
    roomVideoPlaybackAllowedObservable: typeof roomVideoPlaybackAllowedObservable;
    handleStartVideoPlayback: (room: Room) => Promise<void>;
};

// @public (undocumented)
export function setupTrackMutedIndicator(trackRef: TrackReferenceOrPlaceholder): {
    className: string;
    mediaMutedObserver: Observable<boolean>;
};

// @public
export function sortParticipants(participants: Participant[]): Participant[];

// @public
export function sortTrackReferences(tracks: TrackReferenceOrPlaceholder[]): TrackReferenceOrPlaceholder[];

// @public (undocumented)
export type SourcesArray = Track.Source[] | TrackSourceWithOptions[];

// @public
export function supportsScreenSharing(): boolean;

// @public (undocumented)
export type ToggleSource = Exclude<Track.Source, Track.Source.ScreenShareAudio | Track.Source.Unknown>;

// @public (undocumented)
export function tokenize<T extends TokenizeGrammar>(input: string, grammar: T): (string | {
    type: keyof T;
    content: string;
})[];

// @public (undocumented)
export type TokenizeGrammar = {
    [type: string]: RegExp;
};

// @public (undocumented)
export function trackEventSelector<T extends TrackEvent_2>(publication: TrackPublication | Track, event: T): Observable<Parameters<PublicationEventCallbacks[Extract<T, keyof PublicationEventCallbacks>]>>;

// Warning: (ae-internal-missing-underscore) The name "TrackIdentifier" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export type TrackIdentifier<T extends Track.Source = Track.Source> = TrackSource<T> | TrackReference;

// @public (undocumented)
export function trackObservable(track: TrackPublication): Observable<TrackPublication>;

// @public (undocumented)
export type TrackReference = {
    participant: Participant;
    publication: TrackPublication;
    source: Track.Source;
};

// @public (undocumented)
export type TrackReferenceFilter = Parameters<TrackReferenceOrPlaceholder[]['filter']>['0'];

// @public (undocumented)
export type TrackReferenceId = ReturnType<typeof getTrackReferenceId>;

// @public (undocumented)
export type TrackReferenceOrPlaceholder = TrackReference | TrackReferencePlaceholder;

// @public (undocumented)
export type TrackReferencePlaceholder = {
    participant: Participant;
    publication?: never;
    source: Track.Source;
};

// Warning: (ae-forgotten-export) The symbol "TrackReferencesObservableOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function trackReferencesObservable(room: Room, sources: Track.Source[], options: TrackReferencesObservableOptions): Observable<{
    trackReferences: TrackReference[];
    participants: Participant[];
}>;

// @public (undocumented)
export type TrackSource<T extends Track.Source> = RequireAtLeastOne<{
    source: T;
    name: string;
    participant: Participant;
}, 'name' | 'source'>;

// @public (undocumented)
export type TrackSourceWithOptions = {
    source: Track.Source;
    withPlaceholder: boolean;
};

// @public (undocumented)
export function trackSyncTimeObserver(track: Track): Observable<number>;

// @public (undocumented)
export function trackTranscriptionObserver(publication: TrackPublication): Observable<[transcription: TranscriptionSegment[]]>;

// Warning: (ae-forgotten-export) The symbol "UpdatableItem" needs to be exported by the entry point index.d.ts
//
// @public
export function updatePages<T extends UpdatableItem>(currentList: T[], nextList: T[], maxItemsOnPage: number): T[];

// @public (undocumented)
export type VideoSource = Track.Source.Camera | Track.Source.ScreenShare;

// @public (undocumented)
export function wasClickOutside(insideElement: HTMLElement, event: MouseEvent): boolean;

// @public (undocumented)
export const WIDGET_DEFAULT_STATE: WidgetState;

// @public (undocumented)
export type WidgetState = {
    showChat: boolean;
    unreadMessages: number;
    showSettings?: boolean;
};

// (No @packageDocumentation comment for this package)