/**
 * Trust V1 Zod schemas.
 *
 * Schemas for trust record envelope, per-type subjects, policy config,
 * and assessment output contract. These are the canonical validation
 * boundary -- all trust data passes through these schemas.
 *
 * @module domain/trust/schemas
 * @see docs/specs/TRUST_CRYPTO_ALGORITHM.md Sections 8-10, 14
 */
import z from 'zod';
declare const KeyIdSchema: z.ZodString;
declare const RecordIdSchema: z.ZodString;
declare const RecordTypeSchema: z.ZodEnum<["KEY_ADD", "KEY_REVOKE", "WRITER_BIND_ADD", "WRITER_BIND_REVOKE"]>;
declare const TrustSignatureSchema: z.ZodObject<{
    alg: z.ZodLiteral<"ed25519">;
    sig: z.ZodString;
}, "strip", z.ZodTypeAny, {
    alg: "ed25519";
    sig: string;
}, {
    alg: "ed25519";
    sig: string;
}>;
declare const KeyAddSubjectSchema: z.ZodObject<{
    keyId: z.ZodString;
    publicKey: z.ZodString;
}, "strip", z.ZodTypeAny, {
    keyId: string;
    publicKey: string;
}, {
    keyId: string;
    publicKey: string;
}>;
declare const KeyRevokeSubjectSchema: z.ZodObject<{
    keyId: z.ZodString;
    reasonCode: z.ZodEnum<["KEY_COMPROMISE", "KEY_ROLLOVER", "OPERATOR_REQUEST"]>;
}, "strip", z.ZodTypeAny, {
    keyId: string;
    reasonCode: "KEY_COMPROMISE" | "KEY_ROLLOVER" | "OPERATOR_REQUEST";
}, {
    keyId: string;
    reasonCode: "KEY_COMPROMISE" | "KEY_ROLLOVER" | "OPERATOR_REQUEST";
}>;
declare const WriterBindAddSubjectSchema: z.ZodObject<{
    writerId: z.ZodString;
    keyId: z.ZodString;
}, "strip", z.ZodTypeAny, {
    keyId: string;
    writerId: string;
}, {
    keyId: string;
    writerId: string;
}>;
declare const WriterBindRevokeSubjectSchema: z.ZodObject<{
    writerId: z.ZodString;
    keyId: z.ZodString;
    reasonCode: z.ZodEnum<["ACCESS_REMOVED", "ROTATION", "KEY_REVOKED"]>;
}, "strip", z.ZodTypeAny, {
    keyId: string;
    writerId: string;
    reasonCode: "ACCESS_REMOVED" | "ROTATION" | "KEY_REVOKED";
}, {
    keyId: string;
    writerId: string;
    reasonCode: "ACCESS_REMOVED" | "ROTATION" | "KEY_REVOKED";
}>;
type KeyAddSubject = z.infer<typeof KeyAddSubjectSchema>;
type KeyRevokeSubject = z.infer<typeof KeyRevokeSubjectSchema>;
type WriterBindAddSubject = z.infer<typeof WriterBindAddSubjectSchema>;
type WriterBindRevokeSubject = z.infer<typeof WriterBindRevokeSubjectSchema>;
type TrustRecordSubject = KeyAddSubject | KeyRevokeSubject | WriterBindAddSubject | WriterBindRevokeSubject;
type RecordType = z.infer<typeof RecordTypeSchema>;
declare const TrustRecordSchema: z.ZodEffects<z.ZodObject<{
    schemaVersion: z.ZodLiteral<1>;
    recordType: z.ZodEnum<["KEY_ADD", "KEY_REVOKE", "WRITER_BIND_ADD", "WRITER_BIND_REVOKE"]>;
    recordId: z.ZodString;
    issuerKeyId: z.ZodString;
    issuedAt: z.ZodString;
    prev: z.ZodNullable<z.ZodString>;
    subject: z.ZodRecord<z.ZodString, z.ZodUnknown>;
    meta: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    signature: z.ZodObject<{
        alg: z.ZodLiteral<"ed25519">;
        sig: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        alg: "ed25519";
        sig: string;
    }, {
        alg: "ed25519";
        sig: string;
    }>;
}, "strip", z.ZodTypeAny, {
    schemaVersion: 1;
    meta: Record<string, unknown>;
    signature: {
        alg: "ed25519";
        sig: string;
    };
    recordType: "KEY_ADD" | "KEY_REVOKE" | "WRITER_BIND_ADD" | "WRITER_BIND_REVOKE";
    recordId: string;
    issuerKeyId: string;
    issuedAt: string;
    prev: string | null;
    subject: Record<string, unknown>;
}, {
    schemaVersion: 1;
    signature: {
        alg: "ed25519";
        sig: string;
    };
    recordType: "KEY_ADD" | "KEY_REVOKE" | "WRITER_BIND_ADD" | "WRITER_BIND_REVOKE";
    recordId: string;
    issuerKeyId: string;
    issuedAt: string;
    prev: string | null;
    subject: Record<string, unknown>;
    meta?: Record<string, unknown> | undefined;
}>, {
    subject: TrustRecordSubject;
    schemaVersion: 1;
    meta: Record<string, unknown>;
    signature: {
        alg: "ed25519";
        sig: string;
    };
    recordType: "KEY_ADD" | "KEY_REVOKE" | "WRITER_BIND_ADD" | "WRITER_BIND_REVOKE";
    recordId: string;
    issuerKeyId: string;
    issuedAt: string;
    prev: string | null;
}, {
    schemaVersion: 1;
    signature: {
        alg: "ed25519";
        sig: string;
    };
    recordType: "KEY_ADD" | "KEY_REVOKE" | "WRITER_BIND_ADD" | "WRITER_BIND_REVOKE";
    recordId: string;
    issuerKeyId: string;
    issuedAt: string;
    prev: string | null;
    subject: Record<string, unknown>;
    meta?: Record<string, unknown> | undefined;
}>;
declare const TrustPolicySchema: z.ZodObject<{
    schemaVersion: z.ZodLiteral<1>;
    mode: z.ZodEnum<["warn", "enforce"]>;
    writerPolicy: z.ZodLiteral<"all_writers_must_be_trusted">;
}, "strip", z.ZodTypeAny, {
    schemaVersion: 1;
    mode: "warn" | "enforce";
    writerPolicy: "all_writers_must_be_trusted";
}, {
    schemaVersion: 1;
    mode: "warn" | "enforce";
    writerPolicy: "all_writers_must_be_trusted";
}>;
declare const TrustExplanationSchema: z.ZodObject<{
    writerId: z.ZodString;
    trusted: z.ZodBoolean;
    reasonCode: z.ZodString;
    reason: z.ZodString;
}, "strip", z.ZodTypeAny, {
    reason: string;
    writerId: string;
    reasonCode: string;
    trusted: boolean;
}, {
    reason: string;
    writerId: string;
    reasonCode: string;
    trusted: boolean;
}>;
declare const EvidenceSummarySchema: z.ZodObject<{
    recordsScanned: z.ZodNumber;
    activeKeys: z.ZodNumber;
    revokedKeys: z.ZodNumber;
    activeBindings: z.ZodNumber;
    revokedBindings: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    recordsScanned: number;
    activeKeys: number;
    revokedKeys: number;
    activeBindings: number;
    revokedBindings: number;
}, {
    recordsScanned: number;
    activeKeys: number;
    revokedKeys: number;
    activeBindings: number;
    revokedBindings: number;
}>;
declare const TrustAssessmentSchema: z.ZodObject<{
    trustSchemaVersion: z.ZodLiteral<1>;
    mode: z.ZodLiteral<"signed_evidence">;
    trustVerdict: z.ZodEnum<["pass", "fail", "not_configured"]>;
    trust: z.ZodObject<{
        status: z.ZodEnum<["configured", "pinned", "error", "not_configured"]>;
        source: z.ZodEnum<["ref", "cli_pin", "env_pin", "none"]>;
        sourceDetail: z.ZodNullable<z.ZodString>;
        evaluatedWriters: z.ZodArray<z.ZodString, "many">;
        untrustedWriters: z.ZodArray<z.ZodString, "many">;
        explanations: z.ZodArray<z.ZodObject<{
            writerId: z.ZodString;
            trusted: z.ZodBoolean;
            reasonCode: z.ZodString;
            reason: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }, {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }>, "many">;
        evidenceSummary: z.ZodObject<{
            recordsScanned: z.ZodNumber;
            activeKeys: z.ZodNumber;
            revokedKeys: z.ZodNumber;
            activeBindings: z.ZodNumber;
            revokedBindings: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        }, {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        status: "error" | "pinned" | "not_configured" | "configured";
        source: "none" | "ref" | "cli_pin" | "env_pin";
        untrustedWriters: string[];
        sourceDetail: string | null;
        evaluatedWriters: string[];
        explanations: {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }[];
        evidenceSummary: {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        };
    }, {
        status: "error" | "pinned" | "not_configured" | "configured";
        source: "none" | "ref" | "cli_pin" | "env_pin";
        untrustedWriters: string[];
        sourceDetail: string | null;
        evaluatedWriters: string[];
        explanations: {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }[];
        evidenceSummary: {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        };
    }>;
}, "strip", z.ZodTypeAny, {
    mode: "signed_evidence";
    trust: {
        status: "error" | "pinned" | "not_configured" | "configured";
        source: "none" | "ref" | "cli_pin" | "env_pin";
        untrustedWriters: string[];
        sourceDetail: string | null;
        evaluatedWriters: string[];
        explanations: {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }[];
        evidenceSummary: {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        };
    };
    trustVerdict: "pass" | "fail" | "not_configured";
    trustSchemaVersion: 1;
}, {
    mode: "signed_evidence";
    trust: {
        status: "error" | "pinned" | "not_configured" | "configured";
        source: "none" | "ref" | "cli_pin" | "env_pin";
        untrustedWriters: string[];
        sourceDetail: string | null;
        evaluatedWriters: string[];
        explanations: {
            reason: string;
            writerId: string;
            reasonCode: string;
            trusted: boolean;
        }[];
        evidenceSummary: {
            recordsScanned: number;
            activeKeys: number;
            revokedKeys: number;
            activeBindings: number;
            revokedBindings: number;
        };
    };
    trustVerdict: "pass" | "fail" | "not_configured";
    trustSchemaVersion: 1;
}>;
type TrustSignature = z.infer<typeof TrustSignatureSchema>;
type TrustPolicy = z.infer<typeof TrustPolicySchema>;
type TrustExplanation = z.infer<typeof TrustExplanationSchema>;
type EvidenceSummary = z.infer<typeof EvidenceSummarySchema>;
export { KeyIdSchema, RecordIdSchema, RecordTypeSchema, TrustSignatureSchema, KeyAddSubjectSchema, KeyRevokeSubjectSchema, WriterBindAddSubjectSchema, WriterBindRevokeSubjectSchema, TrustRecordSchema, TrustPolicySchema, TrustExplanationSchema, EvidenceSummarySchema, TrustAssessmentSchema, };
export type { RecordType, KeyAddSubject, KeyRevokeSubject, WriterBindAddSubject, WriterBindRevokeSubject, TrustSignature, TrustPolicy, TrustExplanation, EvidenceSummary, };
