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 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[]>;
    streamToVideoAndAudioElements(videoElementId: string, audioElementId: string, userProvidedMediaStream?: MediaStream): Promise<void>;
    talk(content: string): Promise<void>;
    sendDataMessage(message: string): 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