/** * Provider configuration for AgentLink. * * A "provider" defines how to launch an agent CLI subprocess. * Built-in providers ("claude", "brain") delegate to sdk.ts resolvers. * Custom providers specify command/args/env directly. */ import { type ResolvedCommand } from './sdk.js'; export interface ProviderConfig { id: string; name: string; preset: 'claude' | 'custom'; command: string; args?: string[]; cwd?: string; env?: Record; shell?: boolean; /** When true, AgentLink appends --output-format stream-json, --permission-mode, --model etc. */ appendFlags?: boolean; /** Internal: true for "claude" and "brain" builtins. Never persisted. */ builtin?: boolean; /** Backend type this provider requires. Defaults to 'claude' if unset. */ backendType?: 'claude' | 'copilot' | 'codex' | 'yeaft' | 'pi'; } export declare function loadProviders(): ProviderConfig[]; export declare function getProvider(id: string): ProviderConfig; export declare function getDefaultProviderId(): string; export declare function setDefaultProviderId(id: string): void; export declare function saveProvider(config: Omit): void; export declare function deleteProvider(id: string): void; export declare function listProviders(): ProviderConfig[]; /** * Get the backend type required by a provider. * Returns the backend required by the provider, defaulting to 'claude'. */ export declare function getBackendTypeForProvider(providerId: string): 'claude' | 'copilot' | 'codex' | 'yeaft' | 'pi'; /** * Resolve a provider config into a spawn-ready ResolvedCommand. * Builtins delegate to sdk.ts; custom providers build from config fields. */ export declare function resolveProviderCommand(provider: ProviderConfig): ResolvedCommand;