import type { Tool, Resource, Prompt, PromptArgument, Implementation, DiscoverResult, ClientCapabilities, ServerCapabilities, InitializeRequest, InitializeResult, CallToolRequest, CallToolResult, ListToolsRequest, ListToolsResult, ListResourcesRequest, ListResourcesResult, ReadResourceRequest, ReadResourceResult, ListPromptsRequest, ListPromptsResult, GetPromptRequest, GetPromptResult, SubscribeRequest, UnsubscribeRequest, LoggingLevel, ListResourceTemplatesResult, Task, GetTaskResult, ListTasksResult, CancelTaskResult } from '@modelcontextprotocol/client'; export type ResourceTemplate = ListResourceTemplatesResult['resourceTemplates'][number]; export type { Tool, Resource, Prompt, PromptArgument, Implementation, DiscoverResult, ClientCapabilities, ServerCapabilities, InitializeRequest, InitializeResult, CallToolRequest, CallToolResult, ListToolsRequest, ListToolsResult, ListResourcesRequest, ListResourcesResult, ReadResourceRequest, ReadResourceResult, ListPromptsRequest, ListPromptsResult, GetPromptRequest, GetPromptResult, SubscribeRequest, UnsubscribeRequest, LoggingLevel, Task, GetTaskResult, ListTasksResult, CancelTaskResult, }; export declare const KEEPALIVE_INTERVAL_MILLIS = 30000; export declare const DISCONNECTED_THRESHOLD_MILLIS: number; export declare const MAX_PERSISTED_INSTRUCTIONS_CHARS = 32768; export declare const TRIMMED_INSTRUCTIONS_NOTICE = "\n\n[... trimmed excessive length]"; export declare const X402_SCHEME_PREFERENCES: readonly ["auto", "upto", "exact"]; export type X402SchemePreference = (typeof X402_SCHEME_PREFERENCES)[number]; export interface ServerConfig { url?: string; headers?: Record; command?: string; args?: string[]; env?: Record; timeout?: number; protocolVersion?: string; } export interface ProxyConfig { host: string; port: number; } export type SessionStatus = 'active' | 'connecting' | 'reconnecting' | 'unauthorized' | 'expired' | 'crashed'; export type ConnectionMode = 'stateful' | 'stateless' | 'unknown'; export type TransportKind = 'stdio' | 'streamable-http'; export interface SessionNotifications { tools?: { listChangedAt?: string; }; prompts?: { listChangedAt?: string; }; resources?: { listChangedAt?: string; }; } export interface SessionData { name: string; server: ServerConfig; profileName?: string; x402?: X402SchemePreference; insecure?: boolean; pid?: number; protocolVersion?: string; supportedVersions?: string[]; mcpSessionId?: string; connectionMode?: ConnectionMode; serverInfo?: Implementation; capabilities?: ServerCapabilities; instructions?: string | undefined; _meta?: Record; status?: SessionStatus; proxy?: ProxyConfig; notifications?: SessionNotifications; activeTasks?: Record; resourceSubscriptions?: Record; createdAt: string; lastSeenAt?: string; lastConnectionAttemptAt?: string; } export interface ActiveTaskEntry { taskId: string; toolName: string; createdAt: string; } export interface ResourceSubscriptionEntry { uri: string; filePath: string; subscribedAt: string; lastSyncedAt?: string; lastError?: string; } export interface ResourceSyncResult { uri: string; file: string; bytes: number; mimeType?: string; } export interface ResourceUnsubscribeResult { uri: string; file: string; } export interface SessionsStorage { sessions: Record; } export type OAuthGrant = 'authorization_code' | 'client_credentials' | 'id_jag'; export interface AuthProfile { name: string; serverUrl: string; authType: 'oauth'; oauthGrant?: OAuthGrant; oauthIssuer: string; idpIssuer?: string; scopes?: string[]; userEmail?: string; userName?: string; userSubject?: string; createdAt: string; authenticatedAt?: string; refreshedAt?: string; } export interface AuthProfilesStorage { profiles: Record>; } export interface IdJagCredentials { idpIssuer: string; idpTokenEndpoint: string; idpClientId: string; idpClientSecret?: string; idToken: string; idTokenExpiresAt?: number; idpRefreshToken?: string; mcpClientId: string; mcpClientSecret: string; scope?: string; } export type IpcMessageType = 'request' | 'response' | 'shutdown' | 'task-update' | 'set-auth-credentials' | 'set-x402-wallet'; export interface AuthCredentials { serverUrl: string; profileName: string; clientId?: string; refreshToken?: string; accessToken?: string; oauthGrant?: OAuthGrant; clientSecret?: string; privateKeyPem?: string; keyAlg?: string; scope?: string; tokenEndpoint?: string; idJag?: IdJagCredentials; headers?: Record; proxyBearerToken?: string; } export interface X402WalletCredentials { address: string; privateKey: string; } export interface TaskUpdate { taskId: string; status: 'working' | 'input_required' | 'completed' | 'failed' | 'cancelled'; statusMessage?: string; progressMessage?: string; progress?: number; progressTotal?: number; createdAt?: string; lastUpdatedAt?: string; } export interface IpcMessage { type: IpcMessageType; id?: string; method?: string; params?: unknown; timeoutSecs?: number; result?: unknown; taskUpdate?: TaskUpdate; authCredentials?: AuthCredentials; x402Wallet?: X402WalletCredentials; error?: { code: number; message: string; data?: unknown; }; } export type OutputMode = 'human' | 'json'; export interface CommandOptions { outputMode: OutputMode; config?: string; headers?: string[]; timeoutSecs?: number; verbose?: boolean; insecure?: boolean; hideTarget?: boolean; schema?: string; schemaMode?: 'strict' | 'compatible' | 'ignore'; maxChars?: number; } export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export interface McpConfig { mcpServers: Record; } export interface WalletData { address: string; privateKey: string; createdAt: string; } export interface WalletsStorage { version: 1; wallet?: WalletData; } export interface ServerDetails { protocolVersion?: string; supportedVersions?: string[]; capabilities?: ServerCapabilities; serverInfo?: Implementation; instructions?: string; _meta?: Record; connectionMode?: ConnectionMode; transport?: TransportKind; } export interface IMcpClient { close(): Promise; getServerDetails(): Promise; ping(): Promise; discover(): Promise; listTools(cursor?: string): Promise; listAllTools(options?: { refreshCache?: boolean; }): Promise; callTool(name: string, args?: Record, meta?: Record): Promise; listResources(cursor?: string): Promise; listResourceTemplates(cursor?: string): Promise; readResource(uri: string): Promise; listPrompts(cursor?: string): Promise; getPrompt(name: string, args?: Record): Promise; setLoggingLevel(level: LoggingLevel): Promise; callToolWithTask(name: string, args?: Record, onUpdate?: (update: TaskUpdate) => void, meta?: Record): Promise; callToolDetached(name: string, args?: Record, meta?: Record): Promise; pollTask(taskId: string, onUpdate?: (update: TaskUpdate) => void): Promise; listTasks(cursor?: string): Promise; getTask(taskId: string): Promise; getTaskResult(taskId: string): Promise; cancelTask(taskId: string): Promise; } //# sourceMappingURL=types.d.ts.map