@anam-ai/js-sdk
Version:
Client side JavaScript SDK for Anam AI
61 lines • 2.68 kB
TypeScript
import { AnamClientOptions, AnamEvent, EventCallbacks, InputAudioState, PersonaConfig } from './types';
import { TalkMessageStream } from './types/TalkMessageStream';
export default class AnamClient {
private publicEventEmitter;
private internalEventEmitter;
private readonly messageHistoryClient;
private personaConfig;
private clientOptions;
private inputAudioState;
private sessionId;
private organizationId;
private streamingClient;
private apiClient;
private _isStreaming;
constructor(sessionToken: string | undefined, personaConfig?: PersonaConfig, options?: AnamClientOptions);
private decodeJwt;
private validateClientConfig;
private buildStartSessionOptionsForClient;
private startSession;
private startSessionIfNeeded;
stream(userProvidedAudioStream?: MediaStream): Promise<MediaStream[]>;
/**
* @deprecated This method is deprecated. Please use streamToVideoElement instead.
*/
streamToVideoAndAudioElements(videoElementId: string, audioElementId: string, userProvidedAudioStream?: MediaStream): Promise<void>;
streamToVideoElement(videoElementId: string, userProvidedAudioStream?: MediaStream): Promise<void>;
/**
* Send a talk command to make the persona speak the provided content.
* @param content - The text content for the persona to speak
* @throws Error if session is not started or not currently streaming
*/
talk(content: string): Promise<void>;
/**
* Send a raw data message through the WebRTC data channel.
* @param message - The message string to send through the data channel
* @throws Error if session is not started
*/
sendDataMessage(message: string): void;
/**
* Send a user text message in the active streaming session.
* @param content - The text message content to send
* @throws Error if not currently streaming or session is not started
*/
sendUserMessage(content: string): void;
interruptPersona(): void;
stopStreaming(): Promise<void>;
isStreaming(): boolean;
setPersonaConfig(personaConfig: PersonaConfig): void;
getPersonaConfig(): PersonaConfig | undefined;
getInputAudioState(): InputAudioState;
muteInputAudio(): InputAudioState;
unmuteInputAudio(): InputAudioState;
createTalkMessageStream(correlationId?: string): TalkMessageStream;
/**
* Event handling
*/
addListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
removeListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
getActiveSessionId(): string | null;
}
//# sourceMappingURL=AnamClient.d.ts.map