import type { ClientVoiceInputConfig, ReasoningEffort } from "@opengeni/sdk"; /** The client-config fields the stock conversation and chat read. */ export type ClientConfigFlagsSource = { getClientConfig: () => Promise<{ fileUploads?: { enabled?: boolean; }; modelSelection?: boolean | undefined; sandboxFiles?: boolean | undefined; defaultReasoningEffort?: ReasoningEffort | undefined; artifacts?: unknown; sessionCreation?: boolean | undefined; archive?: boolean | undefined; voiceInput?: ClientVoiceInputConfig | undefined; realtimeVoice?: boolean | undefined; browserExtension?: { name: string; installUrl: string; } | undefined; }>; }; export type ClientConfigFlags = { /** Whether the config has loaded. Proxy capability flags stay `true` until it says otherwise. */ loaded: boolean; uploads: boolean; modelSelection: boolean; sandboxFiles: boolean; defaultReasoningEffort: ReasoningEffort | null; /** * Inline Site previews and the artifact viewer. `false` only when a session * proxy says it does not serve them; native deployments omit the flag. */ artifacts: boolean; /** Browser chat creation. `false` only when a session proxy has no `createSession` hook. */ sessionCreation: boolean; /** Chat archive/restore. `false` only when a session proxy disables it. */ archive: boolean; /** Native voice input when the deployment can transcribe, else null. */ voiceInput: ClientVoiceInputConfig | null; /** * Live voice. `false` until the config loads and when a session proxy turns * it off; availability otherwise comes from the realtime model catalog. */ realtimeVoice: boolean; /** * The host explicitly offers live voice to end users (a session proxy with * `realtimeVoice: true`). Embedded conversations show the voice button only * then or when their `realtimeVoice` prop is `true`. */ realtimeVoiceOffered: boolean; /** * The Chrome extension the deployment offers for people's own Chrome, or * null until the config loads or when the server doesn't say (Opengeni Browser). */ browserExtension: { name: string; installUrl: string; } | null; }; /** Deployment and session-proxy capabilities from the client config. */ export declare function useClientConfigFlags(client: Partial | ClientConfigFlagsSource): ClientConfigFlags;