import { SessionConfig, Callbacks, Status, ClientToolsConfig, InputConfig, } from "@elevenlabs/client"; export type Location = "us" | "global" | "eu-residency" | "in-residency"; export declare function parseLocation(location?: string): Location; export declare function getOriginForLocation(location: Location): string; export type { Role, Mode, Status, SessionConfig, DisconnectionDetails, Language, } from "@elevenlabs/client"; export { postOverallFeedback } from "@elevenlabs/client"; export type HookOptions = Partial< SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig & { serverLocation?: Location | string; } >; export type ControlledState = { micMuted?: boolean; volume?: number; }; export type HookCallbacks = Pick< Callbacks, | "onConnect" | "onDisconnect" | "onError" | "onMessage" | "onAudio" | "onDebug" | "onUnhandledClientToolCall" >; export declare function useConversation< T extends HookOptions & ControlledState, >( props?: T ): { startSession: T extends SessionConfig ? (options?: HookOptions) => Promise : (options: SessionConfig & HookOptions) => Promise; endSession: () => Promise; setVolume: ({ volume }: { volume: number }) => void; getInputByteFrequencyData: () => Uint8Array | undefined; getOutputByteFrequencyData: () => Uint8Array | undefined; getInputVolume: () => number; getOutputVolume: () => number; sendFeedback: (like: boolean) => void; getId: () => string | undefined; sendContextualUpdate: (text: string) => void; sendUserMessage: (text: string) => void; sendUserActivity: () => void; sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => void; status: Status; canSendFeedback: boolean; micMuted: boolean | undefined; isSpeaking: boolean; };