import type { ServerConnection } from "./types"; export type ServerConnectionOptions = { port?: number; attach?: string; signal: AbortSignal; }; type OpencodeServer = { client: TClient; server: { url: string; close: () => void; }; }; export type ServerConnectionDeps = { createOpencode: (options: { signal: AbortSignal; port: number; hostname: string; }) => Promise>; createOpencodeClient: (options: { baseUrl: string; }) => TClient; injectServerAuthIntoClient: (client: TClient) => void; isPortAvailable: (port: number, hostname?: string) => Promise; getAvailableServerPort: (preferredPort?: number, hostname?: string) => Promise<{ port: number; wasAutoSelected: boolean; }>; withWorkingOpencodePath: (startServer: () => Promise>) => Promise>; }; export declare function createServerConnectionWithDeps(options: ServerConnectionOptions, deps: ServerConnectionDeps): Promise<{ client: TClient; cleanup: () => void; }>; export declare function createServerConnection(options: ServerConnectionOptions): Promise; export {};