import type { OnPushConfig, DocumentType } from "../core/document-types.js"; import type { OnPushState } from "../core/state.js"; import type { ResolvedRepo, RepoChangeSet } from "../repos/manager.js"; import type { AuthResult } from "../core/auth.js"; import { CostTracker } from "./cost.js"; import type { AgentProgressEvent, ByokConfig } from "./agent.js"; import type { DocAgentProvider } from "./providers/types.js"; export interface OrchestrationOptions { config: OnPushConfig; state: OnPushState | null; repos: ResolvedRepo[]; repoChanges: RepoChangeSet[]; types: DocumentType[]; auth: AuthResult; provider: DocAgentProvider; byok?: ByokConfig; outputDir: string; parallel: number; costLimit: number | null; full: boolean; singleType?: string; verbose: boolean; } export interface DocumentResult { slug: string; name: string; status: "generated" | "updated" | "skipped" | "failed"; content?: string; costUsd: number; inputTokens: number; outputTokens: number; durationMs: number; error?: string; } export interface OrchestrationResult { type: "full" | "incremental"; model: string; documents: DocumentResult[]; costSummary: ReturnType; durationMs: number; } export type OrchestrationEvent = { type: "start"; total: number; generationType: "full" | "incremental"; } | { type: "triage"; affectedTypes: string[]; } | { type: "doc_start"; index: number; total: number; slug: string; name: string; } | { type: "doc_progress"; slug: string; event: AgentProgressEvent; } | { type: "doc_done"; slug: string; name: string; status: "generated" | "updated" | "failed"; durationMs: number; costUsd: number; error?: string; } | { type: "doc_skipped"; slug: string; name: string; } | { type: "cost_limit_exceeded"; currentCost: number; limit: number; }; /** * Orchestrates the documentation generation pipeline. * Yields events for UI progress reporting. */ export declare function orchestrate(options: OrchestrationOptions): AsyncGenerator; //# sourceMappingURL=orchestrator.d.ts.map