@charisma-ai/react
Version:
Charisma.ai chat component for React
38 lines (37 loc) • 1.79 kB
TypeScript
import React, { ReactNode } from "react";
import { type AudioTrack, type AudioOutputsServicePlayOptions, type AudioManagerOptions as OriginalAudioManagerOptions } from "@charisma-ai/sdk";
type AudioManagerContextType = {
isListening: boolean;
isBrowserSupported: boolean;
initialise: () => void;
transcript: string;
interimTranscript: string;
liveTranscript: string;
recordingStatus: RecordingStatus;
clearTranscript: () => void;
startListening: (timeout?: number) => void;
stopListening: () => void;
connect: (token: string, playerSessionId: string) => void;
disconnect: () => void;
resetTimeout: (timeout: number) => void;
playCharacterSpeech: (audio: ArrayBuffer, playOptions: boolean | AudioOutputsServicePlayOptions) => Promise<void> | undefined;
getCharacterSpeechAnalyserNode: () => AnalyserNode | undefined | null;
characterSpeechVolume: number;
setCharacterSpeechVolume: (volume: number) => void;
characterSpeechIsMuted: boolean;
setCharacterSpeechMuted: (muted: boolean) => void;
playMediaAudio: (audioTracks: AudioTrack[]) => void;
mediaAudioVolume: number;
setMediaAudioVolume: (volume: number) => void;
mediaAudioIsMuted: boolean;
setMediaAudioMuted: (muted: boolean) => void;
stopAllMedia: () => void;
};
export type ModifiedAudioManagerOptions = Omit<OriginalAudioManagerOptions, "handleTranscript" | "handleInterimTranscript" | "handleStartSTT" | "handleStopSTT">;
export type RecordingStatus = "OFF" | "STARTING" | "RECORDING";
export declare const AudioManagerProvider: ({ children, options, }: {
children: ReactNode;
options: ModifiedAudioManagerOptions;
}) => React.JSX.Element;
export declare const useAudioManager: () => AudioManagerContextType;
export {};