UNPKG

alpha-ai-avatar-sdk-js

Version:
83 lines (82 loc) 3.31 kB
import { Room, RoomOptions } from 'livekit-client'; import { HTTPClient } from './HTTPClient'; import { AvatarClientConfig, Avatars, CreateVideoConfig, GetSupportedVoicesResponse, Prompt, VideoPlayerConfig, SynthesizerOptions, Landmarks, AvatarAttribute } from './types'; import { VideoPlayer } from './VideoPlayer'; export declare class AvatarClient extends HTTPClient { private room?; private avatarId?; private isAvatarSpeaking; private avatarsAvailable; private landmarks; private conversational; private initialPrompt?; private synthesizeOptions?; private audioElement?; private _videoPlayer?; private videoPlayerConfig?; private canvas; private ctx; private currentLandmarks; private targetLandmarks; private previousLandmarks; private lerpFactor; private isLerpingActive; private animationFrameId; private readonly LERP_THRESHOLD; private readonly MAX_DISTANCE_THRESHOLD; private attributes; private eventEmitter; private customPreset?; constructor(config: AvatarClientConfig); init(videoPlayerConfig: VideoPlayerConfig, audioElement: HTMLAudioElement, canvas?: HTMLCanvasElement): Promise<void>; connect(avatarId?: number, roomOpts?: RoomOptions & Omit<AvatarClientConfig, 'apiKey'>): Promise<Room>; get avatars(): Avatars; get isConnected(): boolean; get isSpeaking(): boolean; get videoPlayer(): VideoPlayer | undefined; get attributesList(): Map<string, AvatarAttribute>; getAvatars(): Promise<Avatars>; getSupportedVoices(): Promise<GetSupportedVoicesResponse>; say(message: string, options?: SynthesizerOptions): void; stop(): void; setMessagesHistory(messages: Prompt[]): void; setSynthesizerOptions(options: SynthesizerOptions): void; switchAvatar(avatarId: number): void; sendConversationalMessage(message: any): void; addEventListener(eventName: string, listener: (...args: any[]) => void): void; removeEventListener(eventName: string, listener: (...args: any[]) => void): void; enableMicrophone(): Promise<void>; disableMicrophone(): Promise<void>; createVideo(avatarId: number, message: string, config?: CreateVideoConfig): Promise<{ url: string; }>; setLerpFactor(factor: number): void; addAttribute(name: string, imageSrc: string, drawFunction?: (ctx: CanvasRenderingContext2D, landmarks: Landmarks, image: HTMLImageElement) => void): Promise<void>; removeAttribute(name: string): void; disconnect(): void; loadPresetAttributes(): void; generateAvatarVideo({ image, text, voiceId, }: { image: string; text: string; voiceId: string; }): Promise<unknown>; getAvatarVideoStatus(id: string): Promise<unknown>; private lerp; private startLerping; private stopLerping; private getPresetDrawFunction; private drawAttributes; private clearRect; private setupRoomListeners; private removeRoomListeners; private handleTrackSubscribed; private handleTrackUnsubscribed; private handleDataReceived; private processLandmarks; private calculateDistance; private updateAndEmitLerpedLandmarks; private emitLandmarks; private destroyEmitter; private fetchAvatars; private sendMessage; }