import type { ClientToolDefinition } from '@mondaydotcomorg/atp-protocol'; import type { TokenRefreshConfig } from './types.js'; import { BaseSession, type TokenCredentials } from './base-session.js'; /** * Server interface for in-process communication */ export interface InProcessServer { start(): Promise; handleInit(ctx: InProcessRequestContext): Promise; getDefinitions(ctx?: InProcessRequestContext): Promise; getRuntimeDefinitions(ctx?: InProcessRequestContext): Promise; getInfo(): unknown; handleSearch(ctx: InProcessRequestContext): Promise; handleExplore(ctx: InProcessRequestContext): Promise; handleExecute(ctx: InProcessRequestContext): Promise; handleResume(ctx: InProcessRequestContext, executionId: string): Promise; } /** * Request context for in-process server calls */ export interface InProcessRequestContext { method: string; path: string; query: Record; headers: Record; body: unknown; clientId?: string; clientToken?: string; userId?: string; user?: unknown; executionId?: string; code?: string; validation?: unknown; result?: unknown; error?: Error; logger: { debug: () => void; info: () => void; warn: () => void; error: () => void; }; status: number; responseBody: unknown; throw(status: number, message: string): never; assert(condition: boolean, message: string): asserts condition; set(header: string, value: string): void; } /** * In-process session for direct server communication without HTTP. * Used when the client and server run in the same process. */ export declare class InProcessSession extends BaseSession { private server; private initialized; constructor(server: InProcessServer, tokenRefreshConfig?: Partial); /** * Initializes the client session with the in-process server. */ init(clientInfo?: { name?: string; version?: string; [key: string]: unknown; }, tools?: ClientToolDefinition[], services?: { hasLLM: boolean; hasApproval: boolean; hasEmbedding: boolean; hasTools: boolean; }): Promise; /** * Ensures the client is initialized before making requests. */ ensureInitialized(): Promise; /** * Creates headers for in-process requests (lowercase for consistency with Node.js) */ getHeaders(): Record; getBaseUrl(): string; /** * Prepares headers for a request, refreshing token if needed */ prepareHeaders(_method: string, url: string, _body?: unknown): Promise>; getDefinitions(options?: { apiGroups?: string[]; }): Promise<{ typescript: string; version: string; apiGroups: string[]; }>; getRuntimeDefinitions(options?: { apis?: string[]; }): Promise; getServerInfo(): Promise<{ version: string; capabilities: Record; }>; search(query: string, options?: Record): Promise<{ results: unknown[]; }>; explore(path: string, options?: Record): Promise; execute(code: string, config?: Record): Promise; resume(executionId: string, callbackResult: unknown): Promise; resumeWithBatchResults(executionId: string, batchResults: Array<{ id: string; result: unknown; }>): Promise; /** * Creates a request context for in-process server calls */ private createContext; } //# sourceMappingURL=in-process-session.d.ts.map