import type { ExecutionPlan } from '../models/types.js';
export interface PlanValidationConfig {
    enabled?: boolean;
    strictMode?: boolean;
    skipTrivialPlans?: boolean;
    validationTimeoutMs?: number;
}
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
    suggestions: string[];
    validationTimeMs: number;
}
export interface PlanValidationResult {
    plan: ExecutionPlan;
    validation: ValidationResult;
    revisedPlan?: ExecutionPlan;
}
export declare class PlanValidator {
    private config;
    constructor(config?: PlanValidationConfig);
    validatePlan(plan: ExecutionPlan, options?: {
        skipIfTrivial?: boolean;
    }): Promise<PlanValidationResult>;
    private runValidation;
    private isTrivialPlan;
    private validateSubtasks;
    private validateDependencies;
    private validateModelAssignments;
    private validateConstraints;
    private validateCostEstimate;
    getConfig(): PlanValidationConfig;
    updateConfig(config: PlanValidationConfig): void;
}
export declare function createPlanValidator(config?: PlanValidationConfig): PlanValidator;
//# sourceMappingURL=plan-validator.d.ts.map