/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import * as schema from './schema.js'; export * from './schema.js'; import type { WritableStream, ReadableStream } from 'node:stream/web'; export declare class AgentSideConnection implements Client { #private; constructor(toAgent: (conn: Client) => Agent, input: WritableStream, output: ReadableStream); /** * Streams new content to the client including text, tool calls, etc. */ sessionUpdate(params: schema.SessionNotification): Promise; /** * Request permission before running a tool * * The agent specifies a series of permission options with different granularity, * and the client returns the chosen one. */ requestPermission(params: schema.RequestPermissionRequest): Promise; readTextFile(params: schema.ReadTextFileRequest): Promise; writeTextFile(params: schema.WriteTextFileRequest): Promise; } type Result = { result: T; } | { error: ErrorResponse; }; type ErrorResponse = { code: number; message: string; data?: unknown; }; export declare class RequestError extends Error { code: number; data?: { details?: string; }; constructor(code: number, message: string, details?: string); static parseError(details?: string): RequestError; static invalidRequest(details?: string): RequestError; static methodNotFound(details?: string): RequestError; static invalidParams(details?: string): RequestError; static internalError(details?: string): RequestError; static authRequired(details?: string): RequestError; toResult(): Result; } export interface Client { requestPermission(params: schema.RequestPermissionRequest): Promise; sessionUpdate(params: schema.SessionNotification): Promise; writeTextFile(params: schema.WriteTextFileRequest): Promise; readTextFile(params: schema.ReadTextFileRequest): Promise; } export interface Agent { initialize(params: schema.InitializeRequest): Promise; newSession(params: schema.NewSessionRequest): Promise; loadSession?(params: schema.LoadSessionRequest): Promise; listSessions?(params: schema.ListSessionsRequest): Promise; authenticate(params: schema.AuthenticateRequest): Promise; prompt(params: schema.PromptRequest): Promise; cancel(params: schema.CancelNotification): Promise; setMode?(params: schema.SetModeRequest): Promise; }