import { type PlanArtifactProvenanceSource, type PlanArtifactV1 } from "./plan-artifact-v1.js";
export type PlanArtifactValidationError = {
    path: string;
    message: string;
    keyword?: string;
};
export type ValidatePlanArtifactSuccess = {
    ok: true;
    artifact: PlanArtifactV1;
};
export type ValidatePlanArtifactFailure = {
    ok: false;
    code: "plan-artifact-schema-invalid";
    errors: PlanArtifactValidationError[];
};
export type ValidatePlanArtifactResult = ValidatePlanArtifactSuccess | ValidatePlanArtifactFailure;
export type NormalizePlanArtifactDraftOptions = {
    planId?: string;
    importSource?: PlanArtifactProvenanceSource;
    actor?: string;
    now?: string;
};
/** Prefer workspace when it ships schemas; else package root (dist/core/planning → repo/package). */
export declare function resolvePlanArtifactSchemaRoot(workspacePath?: string): string;
export declare function formatPlanArtifactInstancePath(instancePath: string | undefined): string;
/**
 * Fill envelope defaults for draft argv without overwriting supplied content.
 */
export declare function normalizePlanArtifactDraft(raw: unknown, options?: NormalizePlanArtifactDraftOptions): Record<string, unknown>;
/**
 * Validate a PlanArtifact document (call {@link normalizePlanArtifactDraft} first for partial argv).
 */
export declare function validatePlanArtifactDocument(doc: unknown, options?: {
    workspaceRoot?: string;
}): ValidatePlanArtifactResult;
/**
 * Normalize argv `artifact`, then validate. Convenience for `draft-plan-artifact`.
 */
export declare function validatePlanArtifactDraftInput(raw: unknown, options?: NormalizePlanArtifactDraftOptions & {
    workspaceRoot?: string;
}): ValidatePlanArtifactResult;
