/**
 * Orchestrator commands - coordinate multi-agent workflows.
 * @task T4466
 * @epic T4454
 */
import type { Task, TaskRef } from '@cleocode/contracts';
import type { DataAccessor } from '../store/data-accessor.js';
export type { CircularDependency, DependencyAnalysis, MissingDependency } from './analyze.js';
export { analyzeDependencies, buildDependencyGraph, detectCircularDependencies, findMissingDependencies, } from './analyze.js';
export type { ContextEstimation } from './context.js';
export { countManifestEntries, estimateContext } from './context.js';
export { OrchestrationHierarchyImpl } from './hierarchy.js';
export type { EpicStatus, OverallStatus, ProgressMetrics, StartupSummary, StatusCounts, } from './status.js';
export { computeEpicStatus, computeOverallStatus, computeProgress, computeStartupSummary, countByStatus, } from './status.js';
/** Orchestrator session state. */
export interface OrchestratorSession {
    epicId: string;
    startedAt: string;
    status: 'active' | 'paused' | 'completed';
    currentWave: number;
    completedTasks: string[];
    spawnedAgents: string[];
}
/** Spawn context for a subagent. */
export interface SpawnContext {
    taskId: string;
    protocol: string;
    prompt: string;
    tokenResolution: {
        fullyResolved: boolean;
        unresolvedTokens: string[];
    };
    /** Optional compiled CANT agent definition attached by `cleo orchestrate spawn`. */
    agentDef?: unknown;
}
/** Task readiness assessment. */
export interface TaskReadiness {
    taskId: string;
    title: string;
    ready: boolean;
    blockers: string[];
    protocol: string;
}
/** Orchestrator analysis result. */
export interface AnalysisResult {
    epicId: string;
    totalTasks: number;
    waves: Array<{
        wave: number;
        tasks: TaskRef[];
    }>;
    readyTasks: string[];
    blockedTasks: string[];
    completedTasks: string[];
}
/**
 * Start an orchestrator session for an epic.
 * @task T4466
 */
export declare function startOrchestration(epicId: string, _cwd?: string, accessor?: DataAccessor): Promise<OrchestratorSession>;
/**
 * Analyze an epic's dependency structure.
 * @task T4466
 */
export declare function analyzeEpic(epicId: string, cwd?: string, accessor?: DataAccessor): Promise<AnalysisResult>;
/**
 * Get parallel-safe ready tasks for an epic.
 * @task T4466
 */
export declare function getReadyTasks(epicId: string, _cwd?: string, accessor?: DataAccessor): Promise<TaskReadiness[]>;
/**
 * Get the next task to work on for an epic.
 * @task T4466
 */
export declare function getNextTask(epicId: string, cwd?: string, accessor?: DataAccessor): Promise<TaskReadiness | null>;
/**
 * Prepare a spawn context for a subagent.
 * @task T4466
 */
export declare function prepareSpawn(taskId: string, _cwd?: string, accessor?: DataAccessor): Promise<SpawnContext>;
/**
 * Validate a subagent's output.
 * @task T4466
 */
export declare function validateSpawnOutput(_taskId: string, output: {
    file?: string;
    manifestEntry?: boolean;
}): Promise<{
    valid: boolean;
    errors: string[];
}>;
/**
 * Get orchestrator context summary.
 * @task T4466
 */
export declare function getOrchestratorContext(epicId: string, _cwd?: string, accessor?: DataAccessor): Promise<{
    epicId: string;
    epicTitle: string;
    totalTasks: number;
    completed: number;
    inProgress: number;
    blocked: number;
    pending: number;
    completionPercent: number;
}>;
/**
 * Auto-dispatch: determine the protocol for a task based on metadata.
 * @task T4466
 */
export declare function autoDispatch(task: Task): string;
/**
 * Resolve tokens in a prompt string.
 * @task T4466
 */
export declare function resolveTokens(prompt: string, context: Record<string, string>): {
    resolved: string;
    unresolved: string[];
};
//# sourceMappingURL=index.d.ts.map