/** * The deployment's unscoped client config (`GET /v1/config/client`) is read by * the provider's API-contract check, the conversation capability flags, the * session-proxy scope and the artifact viewer, usually in the same commit. * Reads through one client object share a request: * * - `joinClientConfigRead` returns the read in flight, or starts a new one. For * callers that need the current config (the contract check before a live * stream opens): they never receive an older, already settled result. * - `cachedClientConfigRead` also reuses the last successful read, for values * that do not change while a page is open (capability flags). * * Workspace-scoped reads (`GET /v1/config/client?workspaceId=`, behind the * model catalog and voice availability) join the same way per workspace. * * A failed read is never kept, so the next caller reads again. */ type ClientConfigSource = { getClientConfig: (options?: { workspaceId?: string; }) => Promise; }; export declare function joinClientConfigRead(client: ClientConfigSource, workspaceId?: string | undefined): Promise; export declare function cachedClientConfigRead(client: ClientConfigSource): Promise; /** * Read the deployment's client config (or one workspace's, with * `workspaceId`), joining a read of the same scope already in flight through * this client, so a screen whose parts each need the config sends one request. */ export declare function readClientConfig(client: ClientConfigSource, workspaceId?: string | undefined): Promise; export {};