import { z } from "zod";
import { type RecordCodec } from "../../../schema/src/records/envelope.js";
import type { ReportRef } from "./export.js";
export type { ReportRef };
export declare const PROJECT_CONFIG_VERSION: "project-config/v1";
export declare const BUNDLE_RECEIPT_VERSION: "bundle-receipt/v1";
declare const projectConfigSchema: z.ZodObject<{
    schemaVersion: z.ZodLiteral<"project-config/v1">;
    projectIdentity: z.ZodString;
    configHash: z.ZodString;
}, z.core.$strict>;
export type ProjectConfig = z.infer<typeof projectConfigSchema>;
export declare const projectConfigCodec: RecordCodec<ProjectConfig>;
declare const bundleReceiptSchema: z.ZodObject<{
    schemaVersion: z.ZodLiteral<"bundle-receipt/v1">;
    projectIdentity: z.ZodString;
    nonce: z.ZodString;
    bundleHash: z.ZodString;
    reviewer: z.ZodString;
    consumedAt: z.ZodString;
}, z.core.$strict>;
export type BundleReceipt = z.infer<typeof bundleReceiptSchema>;
export declare const bundleReceiptCodec: RecordCodec<BundleReceipt>;
export type BundleRejectionReason = "bundle-hash-mismatch" | "project-identity-mismatch" | "config-hash-mismatch" | "report-mismatch" | "expired" | "nonce-replay" | "invalid-bundle";
export declare class BundleRejection extends Error {
    readonly reason: BundleRejectionReason;
    constructor(reason: BundleRejectionReason, message: string);
}
export type ImportTrust = {
    confirmedBundleHash: string;
    reviewer: string;
    retainedReport: ReportRef;
    now: string;
};
export type ImportResult = {
    bundleHash: string;
    reviewer: string;
    importedDecisionIds: string[];
    receiptPath: string;
};
export declare function importBundle(root: string, bundleInput: unknown, trust: ImportTrust): Promise<ImportResult>;
//# sourceMappingURL=import.d.ts.map