import { type Clock } from '../infra/clock.js';
import { type FileSystem } from '../infra/filesystem.js';
import { type ProcessSpawner } from '../infra/spawn.js';
import { type DomainEventBus } from '../shared/domainEvents.js';
import { CardService } from './CardService.js';
import { type ChatExecutor, ChatService } from './ChatService.js';
import { LogService } from './LogService.js';
import { type PipelineExecutor, PipelineService } from './PipelineService.js';
import type { TaskBackendFactory } from './ports.js';
import { type ProjectInitExecutor, ProjectService } from './ProjectService.js';
import { SkillService } from './SkillService.js';
import { SystemService } from './SystemService.js';
import { type WorkerExecutor, WorkerService } from './WorkerService.js';
export interface ServiceContainer {
    readonly projects: ProjectService;
    readonly cards: CardService;
    readonly workers: WorkerService;
    readonly pipelines: PipelineService;
    readonly skills: SkillService;
    readonly logs: LogService;
    readonly chat: ChatService;
    readonly system: SystemService;
}
export interface SystemMeta {
    version: string;
    startedAt: Date;
}
export interface ContainerOptions {
    /** 基础 infra —— 不传用 Node 默认 */
    fs?: FileSystem;
    clock?: Clock;
    events?: DomainEventBus;
    spawner?: ProcessSpawner;
    /** Phase 3 注入的 CLI 适配器 */
    taskBackendFactory?: TaskBackendFactory;
    projectInitExecutor?: ProjectInitExecutor;
    workerExecutor?: WorkerExecutor;
    pipelineExecutor?: PipelineExecutor;
    chatExecutor?: ChatExecutor;
    /** SystemService 元数据 —— 未注入时从 package.json 读 version + now() */
    systemMeta?: SystemMeta;
}
export declare function createContainer(opts?: ContainerOptions): ServiceContainer;
//# sourceMappingURL=container.d.ts.map