/** * Connected MCP assistants, read from the OAuth consent records. * * A "connector" from the operator's point of view is one consent row: an * assistant they approved. Revoking deletes that row, and the MCP surface * re-checks it on every request, so disconnecting takes effect on the * assistant's next call. */ export interface McpConsentRecord { id: string; clientId: string; scopes: string[]; createdAt: string; } export interface McpConnector extends McpConsentRecord { /** Registered client name, or `null` when the client did not supply one. */ name: string | null; /** Whether the assistant may change data, not only read it. */ canWrite: boolean; } interface ClientDetails { name?: string | null; client_name?: string | null; } /** Normalize a consent row plus its client record into one display row. */ export declare function toMcpConnector(consent: McpConsentRecord, client: ClientDetails | null): McpConnector; export type McpFetcher = (input: string, init?: RequestInit) => Promise; /** * List the assistants this staff member has connected. * * Consent rows carry only a client id, so each one is resolved to its * registered name. A client lookup that fails is not fatal — the connector * still lists, just without a friendly name, which beats hiding a live grant * from the person who might want to revoke it. */ export declare function listMcpConnectors(baseUrl: string, fetcher: McpFetcher): Promise; /** Revoke one connector's grant. */ export declare function revokeMcpConnector(baseUrl: string, fetcher: McpFetcher, consentId: string): Promise; export {};