import type { FileSystem } from "../utils/file-system.js"; import { type SecretStore } from "../../packages/auth-store/dist/index.js"; import { createCliEnvironment } from "./environment.js"; import { createServiceRegistry, type ProviderService } from "./service-registry.js"; import { type CommandContextFactory } from "./context.js"; import { createPromptLibrary } from "./prompts.js"; import { type OptionResolvers } from "./options.js"; import { type LoggerFactory } from "./logger.js"; import { ErrorLogger } from "./error-logger.js"; import type { PromptFn, LoggerFn } from "./types.js"; import type { HttpClient } from "./http.js"; import type { CommandRunner } from "../utils/command-checks.js"; import { ProviderRegistry } from "../../packages/providers/dist/index.js"; export interface CliDependencies { fs: FileSystem; prompts: PromptFn; env: { cwd: string; homeDir: string; platform?: NodeJS.Platform; variables?: Record; }; logger?: LoggerFn; exitOverride?: boolean; suppressCommanderOutput?: boolean; httpClient?: HttpClient; commandRunner?: CommandRunner; } export interface CliContainer { readonly env: ReturnType; readonly fs: FileSystem; readonly prompts: PromptFn; readonly promptLibrary: ReturnType; readonly loggerFactory: LoggerFactory; readonly errorLogger: ErrorLogger; readonly options: OptionResolvers; readonly contextFactory: CommandContextFactory; readonly registry: ReturnType; readonly providerRegistry: ProviderRegistry; readonly httpClient: HttpClient; readonly commandRunner: CommandRunner; readonly providers: ProviderService[]; readonly dependencies: CliDependencies; readonly readApiKey: (options?: { readOnly?: boolean; }) => Promise; readonly writeApiKey: (apiKey: string) => Promise; readonly deleteApiKey: () => Promise; readonly createPreviewProviderStore: (providerId: string, fs: FileSystem) => SecretStore | undefined; } export declare function createCliContainer(dependencies: CliDependencies): CliContainer;