import type { ExecutionTask } from '../phantom/runtime.js';
import { type ContinuationProposal, type CrewTemplate, type FallbackPlan, type OptimizationProfile, type PlanningLedgerRow, type ReviewGateResult, type SelectedCrew, type SelectedSpecialist, type ToolPolicyDecision } from './specialist-roster.js';
export interface TaskPlannerState {
    objective: string;
    optimizationProfile: OptimizationProfile;
    selectedCrew: SelectedCrew;
    selectedSpecialists: SelectedSpecialist[];
    selectedSkills: string[];
    selectedWorkflows: string[];
    toolPolicy: ToolPolicyDecision;
    swarmDecision: {
        mode: 'sequential' | 'bounded-parallel' | 'max';
        workers: number;
        rationale: string;
    };
    fallbackPlan: FallbackPlan;
    reviewGates: ReviewGateResult[];
    continuation: ContinuationProposal;
    ledger: PlanningLedgerRow[];
    crewCatalog: CrewTemplate[];
}
export interface TaskPlannerOutput {
    task: ExecutionTask;
    plannerState: TaskPlannerState;
}
export declare function planTask(task: ExecutionTask): TaskPlannerOutput;
