import type { TaskEntity, TaskStatus, TransitionGuard, GuardResult, TransitionContext, TaskEngineErrorCode } from "./types.js";
export declare class TaskEngineError extends Error {
    readonly code: TaskEngineErrorCode;
    /** Optional structured fields for agent JSON (`planning-generation-mismatch`, etc.). */
    readonly details?: Record<string, unknown>;
    constructor(code: TaskEngineErrorCode, message: string, details?: Record<string, unknown>);
}
export declare function listTransitionActionTable(): {
    from: TaskStatus;
    to: TaskStatus;
    action: string;
}[];
export declare function listTransitionActions(): string[];
export declare function isTransitionAllowed(from: TaskStatus, to: TaskStatus): boolean;
export declare function getTransitionAction(from: TaskStatus, to: TaskStatus): string | undefined;
export declare function resolveTargetState(from: TaskStatus, action: string): TaskStatus | undefined;
export declare function getAllowedTransitionsFrom(status: TaskStatus): {
    to: TaskStatus;
    action: string;
}[];
export declare const stateValidityGuard: TransitionGuard;
export declare const dependencyCheckGuard: TransitionGuard;
export declare const singleTaskInProgressGuard: TransitionGuard;
export declare class TransitionValidator {
    private readonly guards;
    constructor(customGuards?: TransitionGuard[]);
    validate(task: TaskEntity, targetState: TaskStatus, context: TransitionContext): {
        allowed: boolean;
        guardResults: GuardResult[];
    };
    getGuards(): TransitionGuard[];
}
