Skip to content

Latest commit

 

History

History
1327 lines (1100 loc) · 47.4 KB

components-react.api.md

File metadata and controls

1327 lines (1100 loc) · 47.4 KB

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

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

import { AudioAnalyserOptions } from 'livekit-client';
import { AudioCaptureOptions } from 'livekit-client';
import { ChatMessage } from 'livekit-client';
import { ConnectionQuality } from 'livekit-client';
import { ConnectionState as ConnectionState_2 } from 'livekit-client';
import { CreateLocalTracksOptions } from 'livekit-client';
import { DataPublishOptions } from 'livekit-client';
import { DisconnectReason } from 'livekit-client';
import { HTMLAttributes } from 'react';
import { LocalAudioTrack } from 'livekit-client';
import { LocalParticipant } from 'livekit-client';
import { LocalTrack } from 'livekit-client';
import { LocalTrackPublication } from 'livekit-client';
import { LocalVideoTrack } from 'livekit-client';
import { MediaDeviceFailure } from 'livekit-client';
import { Participant } from 'livekit-client';
import { ParticipantEvent } from 'livekit-client';
import type { ParticipantKind } from 'livekit-client';
import { ParticipantPermission } from '@livekit/protocol';
import * as React_2 from 'react';
import { RemoteAudioTrack } from 'livekit-client';
import { RemoteParticipant } from 'livekit-client';
import { Room } from 'livekit-client';
import { RoomConnectOptions } from 'livekit-client';
import { RoomEvent } from 'livekit-client';
import { RoomOptions } from 'livekit-client';
import { ScreenShareCaptureOptions } from 'livekit-client';
import { setLogLevel as setLogLevel_2 } from 'livekit-client';
import { SVGProps } from 'react';
import { Track } from 'livekit-client';
import { TrackProcessor } from 'livekit-client';
import { TrackPublication } from 'livekit-client';
import { TrackPublishOptions } from 'livekit-client';
import { TranscriptionSegment } from 'livekit-client';
import { VideoCaptureOptions } from 'livekit-client';

// @beta (undocumented)
export type AgentState = 'disconnected' | 'connecting' | 'initializing' | 'listening' | 'thinking' | 'speaking';

// @public (undocumented)
export interface AllowAudioPlaybackProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
    // (undocumented)
    label: string;
}

// @public (undocumented)
export interface AllowMediaPlaybackProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
    // (undocumented)
    label?: string;
}

// @public
export function AudioConference({ ...props }: AudioConferenceProps): React_2.JSX.Element;

// @public (undocumented)
export interface AudioConferenceProps extends React_2.HTMLAttributes<HTMLDivElement> {
}

// @public
export const AudioTrack: (props: AudioTrackProps & React_2.RefAttributes<HTMLAudioElement>) => React_2.ReactNode;

// @public (undocumented)
export interface AudioTrackProps extends React_2.AudioHTMLAttributes<HTMLAudioElement> {
    // @alpha
    muted?: boolean;
    // (undocumented)
    onSubscriptionStatusChanged?: (subscribed: boolean) => void;
    trackRef?: TrackReference;
    volume?: number;
}

// @public @deprecated
export const AudioVisualizer: (props: AudioVisualizerProps & React_2.RefAttributes<SVGSVGElement>) => React_2.ReactNode;

// @public @deprecated (undocumented)
export interface AudioVisualizerProps extends React_2.HTMLAttributes<SVGElement> {
    // (undocumented)
    trackRef?: TrackReference;
}

// @alpha (undocumented)
export interface AudioWaveformOptions {
    // (undocumented)
    barCount?: number;
    // (undocumented)
    updateInterval?: number;
    // (undocumented)
    volMultiplier?: number;
}

// @beta
export const BarVisualizer: React_2.ForwardRefExoticComponent<Omit<BarVisualizerProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;

// @beta (undocumented)
export type BarVisualizerOptions = {
    maxHeight?: number;
    minHeight?: number;
};

// @beta (undocumented)
export interface BarVisualizerProps extends React_2.HTMLProps<HTMLDivElement> {
    barCount?: number;
    children?: React_2.ReactNode;
    // (undocumented)
    options?: BarVisualizerOptions;
    state?: AgentState;
    // (undocumented)
    trackRef?: TrackReferenceOrPlaceholder;
}

// Warning: (ae-internal-missing-underscore) The name "CameraDisabledIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const CameraDisabledIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "CameraIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const CameraIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export function CarouselLayout({ tracks, orientation, ...props }: CarouselLayoutProps): React_2.JSX.Element;

// @public (undocumented)
export interface CarouselLayoutProps extends React_2.HTMLAttributes<HTMLMediaElement> {
    // (undocumented)
    children: React_2.ReactNode;
    orientation?: 'vertical' | 'horizontal';
    // (undocumented)
    tracks: TrackReferenceOrPlaceholder[];
}

// @public
export function Chat({ messageFormatter, messageDecoder, messageEncoder, channelTopic, ...props }: ChatProps): React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "ChatCloseIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const ChatCloseIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export const ChatEntry: (props: ChatEntryProps & React_2.RefAttributes<HTMLLIElement>) => React_2.ReactNode;

// @public
export interface ChatEntryProps extends React_2.HTMLAttributes<HTMLLIElement> {
    entry: ReceivedChatMessage;
    hideName?: boolean;
    hideTimestamp?: boolean;
    messageFormatter?: MessageFormatter;
}

// Warning: (ae-internal-missing-underscore) The name "ChatIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const ChatIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

export { ChatMessage }

// Warning: (ae-forgotten-export) The symbol "ChatOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export interface ChatProps extends React_2.HTMLAttributes<HTMLDivElement>, ChatOptions {
    // (undocumented)
    messageFormatter?: MessageFormatter;
}

// @public
export const ChatToggle: (props: ChatToggleProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public (undocumented)
export interface ChatToggleProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
}

// Warning: (ae-internal-missing-underscore) The name "Chevron" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const Chevron: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export const ClearPinButton: (props: ClearPinButtonProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public (undocumented)
export interface ClearPinButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
}

// @public
export const ConnectionQualityIndicator: (props: ConnectionQualityIndicatorProps & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// @public (undocumented)
export interface ConnectionQualityIndicatorOptions {
    // (undocumented)
    participant?: Participant;
}

// @public (undocumented)
export interface ConnectionQualityIndicatorProps extends React_2.HTMLAttributes<HTMLDivElement>, ConnectionQualityIndicatorOptions {
}

// @public
export const ConnectionState: (props: ConnectionStatusProps & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// @public
export function ConnectionStateToast(props: ConnectionStateToastProps): React_2.JSX.Element;

// @public (undocumented)
export interface ConnectionStateToastProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    room?: Room;
}

// @public (undocumented)
export interface ConnectionStatusProps extends React_2.HTMLAttributes<HTMLDivElement> {
    room?: Room;
}

// @public
export function ControlBar({ variation, controls, saveUserChoices, onDeviceError, ...props }: ControlBarProps): React_2.JSX.Element;

// @public (undocumented)
export type ControlBarControls = {
    microphone?: boolean;
    camera?: boolean;
    chat?: boolean;
    screenShare?: boolean;
    leave?: boolean;
    settings?: boolean;
};

// @public (undocumented)
export interface ControlBarProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    controls?: ControlBarControls;
    // (undocumented)
    onDeviceError?: (error: {
        source: Track.Source;
        error: Error;
    }) => void;
    // @alpha
    saveUserChoices?: boolean;
    // (undocumented)
    variation?: 'minimal' | 'verbose' | 'textOnly';
}

// @public
export const DisconnectButton: (props: DisconnectButtonProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public (undocumented)
export interface DisconnectButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
    // (undocumented)
    stopTracks?: boolean;
}

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

// @public
export function FocusLayout({ trackRef, ...htmlProps }: FocusLayoutProps): React_2.JSX.Element;

// @public
export function FocusLayoutContainer(props: FocusLayoutContainerProps): React_2.JSX.Element;

// @public (undocumented)
export interface FocusLayoutContainerProps extends React_2.HTMLAttributes<HTMLDivElement> {
}

// @public (undocumented)
export interface FocusLayoutProps extends React_2.HTMLAttributes<HTMLElement> {
    // Warning: (ae-incompatible-release-tags) The symbol "onParticipantClick" is marked as @public, but its signature references "ParticipantClickEvent" which is marked as @internal
    //
    // (undocumented)
    onParticipantClick?: (evt: ParticipantClickEvent) => void;
    trackRef?: TrackReferenceOrPlaceholder;
}

// @public
export const FocusToggle: (props: FocusToggleProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// Warning: (ae-internal-missing-underscore) The name "FocusToggleIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const FocusToggleIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public (undocumented)
export interface FocusToggleProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
    // (undocumented)
    trackRef?: TrackReferenceOrPlaceholder;
}

// @public (undocumented)
export function formatChatMessageLinks(message: string): React_2.ReactNode;

// Warning: (ae-internal-missing-underscore) The name "GearIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const GearIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export function GridLayout({ tracks, ...props }: GridLayoutProps): React_2.JSX.Element;

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

// @public (undocumented)
export interface GridLayoutProps extends React_2.HTMLAttributes<HTMLDivElement>, Pick<UseParticipantsOptions, 'updateOnlyOn'> {
    // (undocumented)
    children: React_2.ReactNode;
    // (undocumented)
    tracks: TrackReferenceOrPlaceholder[];
}

// 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 (undocumented)
export const LayoutContext: React_2.Context<LayoutContextType | undefined>;

// @alpha (undocumented)
export function LayoutContextProvider({ value, onPinChange, onWidgetChange, children, }: React_2.PropsWithChildren<LayoutContextProviderProps>): React_2.JSX.Element;

// @alpha (undocumented)
export interface LayoutContextProviderProps {
    // (undocumented)
    onPinChange?: (state: PinState) => void;
    // (undocumented)
    onWidgetChange?: (state: WidgetState) => void;
    // (undocumented)
    value?: LayoutContextType;
}

// @public (undocumented)
export type LayoutContextType = {
    pin: PinContextType;
    widget: WidgetContextType;
};

// Warning: (ae-internal-missing-underscore) The name "LeaveIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const LeaveIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export const LiveKitRoom: (props: React_2.PropsWithChildren<LiveKitRoomProps> & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// @public (undocumented)
export interface LiveKitRoomProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, 'onError'> {
    audio?: AudioCaptureOptions | boolean;
    connect?: boolean;
    connectOptions?: RoomConnectOptions;
    // @internal (undocumented)
    featureFlags?: FeatureFlags;
    // (undocumented)
    onConnected?: () => void;
    // (undocumented)
    onDisconnected?: (reason?: DisconnectReason) => void;
    // (undocumented)
    onEncryptionError?: (error: Error) => void;
    // (undocumented)
    onError?: (error: Error) => void;
    // (undocumented)
    onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void;
    options?: RoomOptions;
    room?: Room;
    screen?: ScreenShareCaptureOptions | boolean;
    serverUrl: string | undefined;
    // (undocumented)
    simulateParticipants?: number | undefined;
    token: string | undefined;
    video?: VideoCaptureOptions | boolean;
}

// Warning: (ae-internal-missing-underscore) The name "LKFeatureContext" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const LKFeatureContext: React_2.Context<FeatureFlags | undefined>;

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

// Warning: (ae-internal-missing-underscore) The name "LockLockedIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const LockLockedIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export function MediaDeviceMenu({ kind, initialSelection, onActiveDeviceChange, tracks, requestPermissions, ...props }: MediaDeviceMenuProps): React_2.JSX.Element;

// @public (undocumented)
export interface MediaDeviceMenuProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
    // (undocumented)
    initialSelection?: string;
    // (undocumented)
    kind?: MediaDeviceKind;
    // (undocumented)
    onActiveDeviceChange?: (kind: MediaDeviceKind, deviceId: string) => void;
    requestPermissions?: boolean;
    // (undocumented)
    tracks?: Partial<Record<MediaDeviceKind, LocalAudioTrack | LocalVideoTrack | undefined>>;
}

// @public
export const MediaDeviceSelect: (props: MediaDeviceSelectProps & React_2.RefAttributes<HTMLUListElement>) => React_2.ReactNode;

// @public (undocumented)
export interface MediaDeviceSelectProps extends Omit<React_2.HTMLAttributes<HTMLUListElement>, 'onError'> {
    exactMatch?: boolean;
    // (undocumented)
    initialSelection?: string;
    // (undocumented)
    kind: MediaDeviceKind;
    // (undocumented)
    onActiveDeviceChange?: (deviceId: string) => void;
    // (undocumented)
    onDeviceListChange?: (devices: MediaDeviceInfo[]) => void;
    // (undocumented)
    onDeviceSelectError?: (e: Error) => void;
    // (undocumented)
    onError?: (e: Error) => void;
    requestPermissions?: boolean;
    // (undocumented)
    track?: LocalAudioTrack | LocalVideoTrack;
}

// Warning: (ae-forgotten-export) The symbol "LegacyReceivedChatMessage" needs to be exported by the entry point index.d.ts
//
// @public @deprecated (undocumented)
export type MessageDecoder = (message: Uint8Array) => LegacyReceivedChatMessage;

// Warning: (ae-forgotten-export) The symbol "LegacyChatMessage" needs to be exported by the entry point index.d.ts
//
// @public @deprecated (undocumented)
export type MessageEncoder = (message: LegacyChatMessage) => Uint8Array;

// @public (undocumented)
export type MessageFormatter = (message: string) => React_2.ReactNode;

// Warning: (ae-internal-missing-underscore) The name "MicDisabledIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const MicDisabledIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "MicIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const MicIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @alpha
export interface MultiBandTrackVolumeOptions {
    // (undocumented)
    analyserOptions?: AnalyserOptions;
    // (undocumented)
    bands?: number;
    hiPass?: number;
    loPass?: number;
    updateInterval?: number;
}

// @public
export const ParticipantAudioTile: (props: ParticipantTileProps & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// 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 const ParticipantContext: React_2.Context<Participant | undefined>;

// @public
export function ParticipantContextIfNeeded(props: React_2.PropsWithChildren<{
    participant?: Participant;
}>): React_2.JSX.Element;

// 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
export function ParticipantLoop({ participants, ...props }: ParticipantLoopProps): React_2.JSX.Element;

// @public (undocumented)
export interface ParticipantLoopProps {
    children: React_2.ReactNode;
    participants: Participant[];
}

// @public
export const ParticipantName: (props: ParticipantNameProps & React_2.RefAttributes<HTMLSpanElement>) => React_2.ReactNode;

// @public (undocumented)
export interface ParticipantNameProps extends React_2.HTMLAttributes<HTMLSpanElement>, UseParticipantInfoOptions {
}

// Warning: (ae-internal-missing-underscore) The name "ParticipantPlaceholder" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const ParticipantPlaceholder: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export const ParticipantTile: (props: ParticipantTileProps & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// @public (undocumented)
export interface ParticipantTileProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    disableSpeakingIndicator?: boolean;
    // Warning: (ae-incompatible-release-tags) The symbol "onParticipantClick" is marked as @public, but its signature references "ParticipantClickEvent" which is marked as @internal
    //
    // (undocumented)
    onParticipantClick?: (event: ParticipantClickEvent) => void;
    trackRef?: TrackReferenceOrPlaceholder;
}

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

// @public
export function PreJoin({ defaults, onValidate, onSubmit, onError, debug, joinLabel, micLabel, camLabel, userLabel, persistUserChoices, videoProcessor, ...htmlProps }: PreJoinProps): React_2.JSX.Element;

// @public
export interface PreJoinProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, 'onSubmit' | 'onError'> {
    // (undocumented)
    camLabel?: string;
    debug?: boolean;
    defaults?: Partial<LocalUserChoices>;
    // (undocumented)
    joinLabel?: string;
    // (undocumented)
    micLabel?: string;
    // (undocumented)
    onError?: (error: Error) => void;
    onSubmit?: (values: LocalUserChoices) => void;
    onValidate?: (values: LocalUserChoices) => boolean;
    // @alpha
    persistUserChoices?: boolean;
    // (undocumented)
    userLabel?: string;
    // (undocumented)
    videoProcessor?: TrackProcessor<Track.Kind.Video>;
}

// Warning: (ae-internal-missing-underscore) The name "QualityExcellentIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const QualityExcellentIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "QualityGoodIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const QualityGoodIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "QualityPoorIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const QualityPoorIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "QualityUnknownIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const QualityUnknownIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

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

// @public
export function RoomAudioRenderer({ volume, muted }: RoomAudioRendererProps): React_2.JSX.Element;

// @public (undocumented)
export interface RoomAudioRendererProps {
    // @alpha
    muted?: boolean;
    volume?: number;
}

// @public (undocumented)
export const RoomContext: React_2.Context<Room | undefined>;

// @public
export const RoomName: React_2.FC<RoomNameProps & React_2.RefAttributes<HTMLSpanElement>>;

// @public (undocumented)
export interface RoomNameProps extends React_2.HTMLAttributes<HTMLSpanElement> {
    // (undocumented)
    childrenPosition?: 'before' | 'after';
}

// Warning: (ae-internal-missing-underscore) The name "ScreenShareIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const ScreenShareIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "ScreenShareStopIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const ScreenShareStopIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// 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;

// Warning: (ae-internal-missing-underscore) The name "SpinnerIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const SpinnerIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @public
export const StartAudio: (props: AllowAudioPlaybackProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public
export const StartMediaButton: (props: AllowMediaPlaybackProps & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public
export function Toast(props: React_2.HTMLAttributes<HTMLDivElement>): React_2.JSX.Element;

// @public
export function TrackLoop({ tracks, ...props }: TrackLoopProps): React_2.JSX.Element;

// @public (undocumented)
export interface TrackLoopProps {
    children: React_2.ReactNode;
    tracks: TrackReference[] | TrackReferenceOrPlaceholder[];
}

// @public
export const TrackMutedIndicator: (props: TrackMutedIndicatorProps & React_2.RefAttributes<HTMLDivElement>) => React_2.ReactNode;

// @public (undocumented)
export interface TrackMutedIndicatorProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    show?: 'always' | 'muted' | 'unmuted';
    // (undocumented)
    trackRef: TrackReferenceOrPlaceholder;
}

// @public
export const TrackRefContext: React_2.Context<TrackReferenceOrPlaceholder | undefined>;

// Warning: (ae-internal-missing-underscore) The name "TrackRefContextIfNeeded" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export function TrackRefContextIfNeeded(props: React_2.PropsWithChildren<{
    trackRef?: TrackReferenceOrPlaceholder;
}>): React_2.JSX.Element;

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

// Warning: (ae-forgotten-export) The symbol "TrackReferencePlaceholder" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type TrackReferenceOrPlaceholder = TrackReference | TrackReferencePlaceholder;

// Warning: (ae-forgotten-export) The symbol "ToggleSource" needs to be exported by the entry point index.d.ts
//
// @public
export const TrackToggle: <T extends ToggleSource>(props: TrackToggleProps<T> & React_2.RefAttributes<HTMLButtonElement>) => React_2.ReactNode;

// @public (undocumented)
export interface TrackToggleProps<T extends ToggleSource> extends Omit<React_2.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
    // Warning: (ae-forgotten-export) The symbol "CaptureOptionsBySource" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    captureOptions?: CaptureOptionsBySource<T>;
    // (undocumented)
    initialState?: boolean;
    onChange?: (enabled: boolean, isUserInitiated: boolean) => void;
    // (undocumented)
    onDeviceError?: (error: Error) => void;
    // (undocumented)
    publishOptions?: TrackPublishOptions;
    // (undocumented)
    showIcon?: boolean;
    // (undocumented)
    source: T;
}

// @alpha (undocumented)
export interface TrackTranscriptionOptions {
    bufferSize?: number;
    onTranscription?: (newSegments: TranscriptionSegment[]) => void;
}

// Warning: (ae-internal-missing-underscore) The name "UnfocusToggleIcon" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const UnfocusToggleIcon: (props: SVGProps<SVGSVGElement>) => React_2.JSX.Element;

// @alpha
export function useAudioPlayback(room?: Room): {
    canPlayAudio: boolean;
    startAudio: () => Promise<void>;
};

// @alpha (undocumented)
export function useAudioWaveform(trackOrTrackReference?: LocalAudioTrack | RemoteAudioTrack | TrackReferenceOrPlaceholder, options?: AudioWaveformOptions): {
    bars: number[];
};

// @public
export function useChat(options?: ChatOptions): {
    send: (message: string) => Promise<ChatMessage>;
    update: (message: string, originalMessageOrId: string | ChatMessage) => Promise<{
        readonly message: string;
        readonly editTimestamp: number;
        readonly id: string;
        readonly timestamp: number;
    }>;
    chatMessages: ReceivedChatMessage[];
    isSending: boolean;
};

// @public
export function useChatToggle({ props }: UseChatToggleProps): {
    mergedProps: React_2.ButtonHTMLAttributes<HTMLButtonElement> & {
        className: string;
        onClick: () => void;
        'aria-pressed': string;
        'data-lk-unread-msgs': string;
    };
};

// @public (undocumented)
export interface UseChatToggleProps {
    // (undocumented)
    props: React_2.ButtonHTMLAttributes<HTMLButtonElement>;
}

// @public
export function useClearPinButton(props: ClearPinButtonProps): {
    buttonProps: ClearPinButtonProps & {
        className: string;
        disabled: boolean;
        onClick: () => void;
    };
};

// @public
export function useConnectionQualityIndicator(options?: ConnectionQualityIndicatorOptions): {
    className: "lk-connection-quality";
    quality: ConnectionQuality;
};

// @public
export function useConnectionState(room?: Room): ConnectionState_2;

// @public (undocumented)
export function useCreateLayoutContext(): LayoutContextType;

// Warning: (ae-forgotten-export) The symbol "ReceivedDataMessage" needs to be exported by the entry point index.d.ts
// Warning: (ae-forgotten-export) The symbol "UseDataChannelReturnType" needs to be exported by the entry point index.d.ts
//
// @public
export function useDataChannel<T extends string>(topic: T, onMessage?: (msg: ReceivedDataMessage<T>) => void): UseDataChannelReturnType<T>;

// @public
export function useDataChannel(onMessage?: (msg: ReceivedDataMessage) => void): UseDataChannelReturnType;

// @public
export function useDisconnectButton(props: DisconnectButtonProps): {
    buttonProps: DisconnectButtonProps & {
        className: string;
        onClick: () => void;
        disabled: boolean;
    };
};

// @public (undocumented)
export function useEnsureCreateLayoutContext(layoutContext?: LayoutContextType): LayoutContextType;

// @public
export function useEnsureLayoutContext(layoutContext?: LayoutContextType): LayoutContextType;

// @public
export function useEnsureParticipant(participant?: Participant): Participant;

// @public
export function useEnsureRoom(room?: Room): Room;

// @public
export function useEnsureTrackRef(trackRef?: TrackReferenceOrPlaceholder): TrackReferenceOrPlaceholder;

// @alpha
export function useFacingMode(trackReference: TrackReferenceOrPlaceholder): 'user' | 'environment' | 'left' | 'right' | 'undefined';

// Warning: (ae-forgotten-export) The symbol "FeatureContext" needs to be exported by the entry point index.d.ts
// Warning: (ae-internal-missing-underscore) The name "useFeatureContext" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export function useFeatureContext<T extends boolean>(require?: T): FeatureContext<T>;

// @public
export function useFocusToggle({ trackRef, props }: UseFocusToggleProps): {
    mergedProps: React_2.ButtonHTMLAttributes<HTMLButtonElement> & {
        className: string;
        onClick: (event: React_2.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
    };
    inFocus: boolean;
};

// @public (undocumented)
export interface UseFocusToggleProps {
    // (undocumented)
    props: React_2.ButtonHTMLAttributes<HTMLButtonElement>;
    // (undocumented)
    trackRef?: TrackReferenceOrPlaceholder;
}

// @public
export function useGridLayout(
gridElement: React_2.RefObject<HTMLDivElement>,
trackCount: number, options?: {
    gridLayouts?: GridLayoutDefinition[];
}): {
    layout: GridLayoutInfo;
    containerWidth: number;
    containerHeight: number;
};

// @alpha (undocumented)
export function useIsEncrypted(participant?: Participant, options?: UseIsEncryptedOptions): boolean;

// @alpha (undocumented)
export interface UseIsEncryptedOptions {
    // (undocumented)
    room?: Room;
}

// @public
export function useIsMuted(trackRef: TrackReferenceOrPlaceholder): boolean;

// @public (undocumented)
export interface UseIsMutedOptions {
    // (undocumented)
    participant?: Participant;
}

// @public
export function useIsRecording(room?: Room): boolean;

// @public
export function useIsSpeaking(participant?: Participant): boolean;

// @public
export function useLayoutContext(): LayoutContextType;

// @public
export function useLiveKitRoom<T extends HTMLElement>(props: LiveKitRoomProps): {
    room: Room | undefined;
    htmlProps: HTMLAttributes<T>;
};

// @public
export function useLocalParticipant(options?: UseLocalParticipantOptions): {
    isMicrophoneEnabled: boolean;
    isScreenShareEnabled: boolean;
    isCameraEnabled: boolean;
    microphoneTrack: TrackPublication | undefined;
    cameraTrack: TrackPublication | undefined;
    lastMicrophoneError: Error | undefined;
    lastCameraError: Error | undefined;
    localParticipant: LocalParticipant;
};

// @public (undocumented)
export interface UseLocalParticipantOptions {
    room?: Room;
}

// @public
export function useLocalParticipantPermissions(): ParticipantPermission | undefined;

// @public
export function useMaybeLayoutContext(): LayoutContextType | undefined;

// @public
export function useMaybeParticipantContext(): Participant | undefined;

// @public
export function useMaybeRoomContext(): Room | undefined;

// @public
export function useMaybeTrackRefContext(): TrackReferenceOrPlaceholder | undefined;

// @public
export function useMediaDevices({ kind, onError, }: {
    kind: MediaDeviceKind;
    onError?: (e: Error) => void;
}): MediaDeviceInfo[];

// @public
export function useMediaDeviceSelect({ kind, room, track, requestPermissions, onError, }: UseMediaDeviceSelectProps): {
    devices: MediaDeviceInfo[];
    className: string;
    activeDeviceId: string;
    setActiveMediaDevice: (id: string, options?: SetMediaDeviceOptions) => Promise<void>;
};

// @public (undocumented)
export interface UseMediaDeviceSelectProps {
    // (undocumented)
    kind: MediaDeviceKind;
    onError?: (e: Error) => void;
    requestPermissions?: boolean;
    // (undocumented)
    room?: Room;
    // (undocumented)
    track?: LocalAudioTrack | LocalVideoTrack;
}

// @alpha
export function useMultibandTrackVolume(trackOrTrackReference?: LocalAudioTrack | RemoteAudioTrack | TrackReferenceOrPlaceholder, options?: MultiBandTrackVolumeOptions): number[];

// @alpha
export function usePagination(itemPerPage: number, trackReferences: TrackReferenceOrPlaceholder[]): {
    totalPageCount: number;
    nextPage: () => void;
    prevPage: () => void;
    setPage: (num: number) => void;
    firstItemIndex: number;
    lastItemIndex: number;
    tracks: TrackReferenceOrPlaceholder[];
    currentPage: number;
};

// @public
export function useParticipantAttribute(attributeKey: string, options?: UseParticipantAttributesOptions): string;

// @public (undocumented)
export function useParticipantAttributes(props?: UseParticipantAttributesOptions): {
    attributes: Readonly<Record<string, string>> | undefined;
};

// @public
export interface UseParticipantAttributesOptions {
    // (undocumented)
    participant?: Participant;
}

// @public
export function useParticipantContext(): Participant;

// @public (undocumented)
export function useParticipantInfo(props?: UseParticipantInfoOptions): {
    identity: string | undefined;
    name: string | undefined;
    metadata: string | undefined;
};

// @public
export interface UseParticipantInfoOptions {
    // (undocumented)
    participant?: Participant;
}

// @public (undocumented)
export function useParticipantPermissions(options?: UseParticipantPermissionsOptions): ParticipantPermission | undefined;

// @public
export interface UseParticipantPermissionsOptions {
    // (undocumented)
    participant?: Participant;
}

// @public
export function useParticipants(options?: UseParticipantsOptions): (RemoteParticipant | LocalParticipant)[];

// @public (undocumented)
export interface UseParticipantsOptions {
    room?: Room;
    updateOnlyOn?: RoomEvent[];
}

// @public
export function useParticipantTile<T extends HTMLElement>({ trackRef, onParticipantClick, disableSpeakingIndicator, htmlProps, }: UseParticipantTileProps<T>): {
    elementProps: React_2.HTMLAttributes<T>;
};

// @public (undocumented)
export interface UseParticipantTileProps<T extends HTMLElement> extends React_2.HTMLAttributes<T> {
    // (undocumented)
    disableSpeakingIndicator?: boolean;
    // (undocumented)
    htmlProps: React_2.HTMLAttributes<T>;
    // Warning: (ae-incompatible-release-tags) The symbol "onParticipantClick" is marked as @public, but its signature references "ParticipantClickEvent" which is marked as @internal
    //
    // (undocumented)
    onParticipantClick?: (event: ParticipantClickEvent) => void;
    trackRef?: TrackReferenceOrPlaceholder;
}

// @public
export function useParticipantTracks(sources: Track.Source[], participantIdentity?: string): TrackReference[];

// @alpha
export function usePersistentUserChoices(options?: UsePersistentUserChoicesOptions): {
    userChoices: LocalUserChoices;
    saveAudioInputEnabled: (isEnabled: boolean) => void;
    saveVideoInputEnabled: (isEnabled: boolean) => void;
    saveAudioInputDeviceId: (deviceId: string) => void;
    saveVideoInputDeviceId: (deviceId: string) => void;
    saveUsername: (username: string) => void;
};

// @alpha
export interface UsePersistentUserChoicesOptions {
    defaults?: Partial<LocalUserChoices>;
    preventLoad?: boolean;
    preventSave?: boolean;
}

// @public
export function usePinnedTracks(layoutContext?: LayoutContextType): TrackReferenceOrPlaceholder[];

// @public (undocumented)
export function usePreviewDevice<T extends LocalVideoTrack | LocalAudioTrack>(enabled: boolean, deviceId: string, kind: 'videoinput' | 'audioinput'): {
    selectedDevice: MediaDeviceInfo | undefined;
    localTrack: T | undefined;
    deviceError: Error | null;
};

// @alpha (undocumented)
export function usePreviewTracks(options: CreateLocalTracksOptions, onError?: (err: Error) => void): LocalTrack<Track.Kind>[] | undefined;

// Warning: (ae-incompatible-release-tags) The symbol "useRemoteParticipant" is marked as @public, but its signature references "ParticipantIdentifier" which is marked as @beta
//
// @public
export function useRemoteParticipant(identifier: ParticipantIdentifier, options?: UseRemoteParticipantOptions): RemoteParticipant | undefined;

// @public
export function useRemoteParticipant(identity: string, options?: UseRemoteParticipantOptions): RemoteParticipant | undefined;

// @public (undocumented)
export interface UseRemoteParticipantOptions {
    updateOnlyOn?: ParticipantEvent[];
}

// @public
export function useRemoteParticipants(options?: UseRemoteParticipantsOptions): RemoteParticipant[];

// @public (undocumented)
export interface UseRemoteParticipantsOptions {
    room?: Room;
    updateOnlyOn?: RoomEvent[];
}

// @public (undocumented)
export interface UserInfo {
    // (undocumented)
    identity?: string;
    // (undocumented)
    metadata?: string;
    // (undocumented)
    name?: string;
}

// @public
export function useRoomContext(): Room;

// @public (undocumented)
export function useRoomInfo(options?: UseRoomInfoOptions): {
    name: string;
    metadata: string | undefined;
};

// @public
export interface UseRoomInfoOptions {
    // (undocumented)
    room?: Room;
}

// @public
export function useSortedParticipants(participants: Array<Participant>): Participant[];

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

// @alpha
export function useStartAudio({ room, props }: UseStartAudioProps): {
    mergedProps: React_2.ButtonHTMLAttributes<HTMLButtonElement> & {
        className: string;
        onClick: () => void;
        style: {
            display: string;
        };
    };
    canPlayAudio: boolean;
};

// @alpha (undocumented)
export interface UseStartAudioProps {
    // (undocumented)
    props: React_2.ButtonHTMLAttributes<HTMLButtonElement>;
    // (undocumented)
    room?: Room;
}

// @alpha
export function useStartVideo({ room, props }: UseStartVideoProps): {
    mergedProps: React_2.ButtonHTMLAttributes<HTMLButtonElement> & {
        className: string;
        onClick: () => void;
        style: {
            display: string;
        };
    };
    canPlayVideo: boolean;
};

// @alpha (undocumented)
export interface UseStartVideoProps {
    // (undocumented)
    props: React_2.ButtonHTMLAttributes<HTMLButtonElement>;
    // (undocumented)
    room?: Room;
}

// @alpha
export function useSwipe(element: React_2.RefObject<HTMLElement>, options?: UseSwipeOptions): void;

// @alpha (undocumented)
export type UseSwipeOptions = {
    minSwipeDistance?: number;
    onLeftSwipe?: () => void;
    onRightSwipe?: () => void;
};

// @public
export function useToken(tokenEndpoint: string | undefined, roomName: string, options?: UseTokenOptions): string | undefined;

// @public (undocumented)
export interface UseTokenOptions {
    // (undocumented)
    userInfo?: UserInfo;
}

// @public
export function useTrackByName(name: string, participant?: Participant): TrackReferenceOrPlaceholder;

// Warning: (ae-forgotten-export) The symbol "TrackMutedIndicatorReturnType" needs to be exported by the entry point index.d.ts
//
// @public
export function useTrackMutedIndicator(trackRef?: TrackReferenceOrPlaceholder): TrackMutedIndicatorReturnType;

// @public
export function useTrackRefContext(): TrackReferenceOrPlaceholder;

// Warning: (ae-forgotten-export) The symbol "SourcesArray" needs to be exported by the entry point index.d.ts
//
// @public
export function useTracks<T extends SourcesArray = Track.Source[]>(sources?: T, options?: UseTracksOptions): UseTracksHookReturnType<T>;

// Warning: (ae-forgotten-export) The symbol "TrackSourceWithOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type UseTracksHookReturnType<T> = T extends Track.Source[] ? TrackReference[] : T extends TrackSourceWithOptions[] ? TrackReferenceOrPlaceholder[] : never;

// @public (undocumented)
export type UseTracksOptions = {
    updateOnlyOn?: RoomEvent[];
    onlySubscribed?: boolean;
    room?: Room;
};

// @public
export function useTrackToggle<T extends ToggleSource>({ source, onChange, initialState, captureOptions, publishOptions, onDeviceError, ...rest }: UseTrackToggleProps<T>): {
    toggle: ((forceState?: boolean) => Promise<void>) | ((forceState?: boolean, captureOptions?: CaptureOptionsBySource<T> | undefined) => Promise<boolean | undefined>);
    enabled: boolean;
    pending: boolean;
    track: LocalTrackPublication | undefined;
    buttonProps: React_2.ButtonHTMLAttributes<HTMLButtonElement>;
};

// @public (undocumented)
export interface UseTrackToggleProps<T extends ToggleSource> extends Omit<TrackToggleProps<T>, 'showIcon'> {
}

// @alpha (undocumented)
export function useTrackTranscription(trackRef: TrackReferenceOrPlaceholder | undefined, options?: TrackTranscriptionOptions): {
    segments: ReceivedTranscriptionSegment[];
};

// @alpha
export function useTrackVolume(trackOrTrackReference?: LocalAudioTrack | RemoteAudioTrack | TrackReference, options?: AudioAnalyserOptions): number;

// @public
export function useVisualStableUpdate(
trackReferences: TrackReferenceOrPlaceholder[], maxItemsOnPage: number, options?: UseVisualStableUpdateOptions): TrackReferenceOrPlaceholder[];

// @public (undocumented)
export interface UseVisualStableUpdateOptions {
    customSortFunction?: (trackReferences: TrackReferenceOrPlaceholder[]) => TrackReferenceOrPlaceholder[];
}

// @beta
export function useVoiceAssistant(): VoiceAssistant;

// @public
export function VideoConference({ chatMessageFormatter, chatMessageDecoder, chatMessageEncoder, SettingsComponent, ...props }: VideoConferenceProps): React_2.JSX.Element;

// @public (undocumented)
export interface VideoConferenceProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    chatMessageDecoder?: MessageDecoder;
    // (undocumented)
    chatMessageEncoder?: MessageEncoder;
    // (undocumented)
    chatMessageFormatter?: MessageFormatter;
    // @alpha (undocumented)
    SettingsComponent?: React_2.ComponentType;
}

// @public
export const VideoTrack: (props: VideoTrackProps & React_2.RefAttributes<HTMLVideoElement>) => React_2.ReactNode;

// @public (undocumented)
export interface VideoTrackProps extends React_2.VideoHTMLAttributes<HTMLVideoElement> {
    // (undocumented)
    manageSubscription?: boolean;
    // (undocumented)
    onSubscriptionStatusChanged?: (subscribed: boolean) => void;
    // Warning: (ae-incompatible-release-tags) The symbol "onTrackClick" is marked as @public, but its signature references "ParticipantClickEvent" which is marked as @internal
    //
    // (undocumented)
    onTrackClick?: (evt: ParticipantClickEvent) => void;
    trackRef?: TrackReference;
}

// @beta (undocumented)
export interface VoiceAssistant {
    // (undocumented)
    agent: RemoteParticipant | undefined;
    // (undocumented)
    agentAttributes: RemoteParticipant['attributes'] | undefined;
    // (undocumented)
    agentTranscriptions: ReceivedTranscriptionSegment[];
    // (undocumented)
    audioTrack: TrackReference | undefined;
    // (undocumented)
    state: AgentState;
}

// @beta (undocumented)
export function VoiceAssistantControlBar({ controls, saveUserChoices, onDeviceError, ...props }: VoiceAssistantControlBarProps): React_2.JSX.Element;

// @beta (undocumented)
export type VoiceAssistantControlBarControls = {
    microphone?: boolean;
    leave?: boolean;
};

// @beta (undocumented)
export interface VoiceAssistantControlBarProps extends React_2.HTMLAttributes<HTMLDivElement> {
    // (undocumented)
    controls?: VoiceAssistantControlBarControls;
    // (undocumented)
    onDeviceError?: (error: {
        source: Track.Source;
        error: Error;
    }) => void;
    saveUserChoices?: boolean;
}

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

// Warnings were encountered during analysis:
//
// src/context/layout-context.ts:10:3 - (ae-forgotten-export) The symbol "PinContextType" needs to be exported by the entry point index.d.ts
// src/context/layout-context.ts:11:3 - (ae-forgotten-export) The symbol "WidgetContextType" needs to be exported by the entry point index.d.ts
// src/hooks/useGridLayout.ts:27:6 - (ae-forgotten-export) The symbol "GridLayoutInfo" needs to be exported by the entry point index.d.ts
// src/hooks/useMediaDeviceSelect.ts:47:29 - (ae-forgotten-export) The symbol "SetMediaDeviceOptions" needs to be exported by the entry point index.d.ts
// src/hooks/useTrackTranscription.ts:43:38 - (ae-forgotten-export) The symbol "ReceivedTranscriptionSegment" needs to be exported by the entry point index.d.ts

// (No @packageDocumentation comment for this package)