import { z } from "zod";
import type { GovernanceDocument, GovernancePHState } from "./types.js";
/** Schema for validating the header object of a Governance document */
export declare const GovernanceDocumentHeaderSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    createdAtUtcIso: z.ZodString;
    lastModifiedAtUtcIso: z.ZodString;
    documentType: z.ZodLiteral<"rfp-hub/governance">;
}, z.core.$strip>;
/** Schema for validating the state object of a Governance document */
export declare const GovernancePHStateSchema: z.ZodObject<{
    global: z.ZodObject<Required<{
        disputes: z.ZodType<import("./types.js").Dispute[], unknown, z.core.$ZodTypeInternals<import("./types.js").Dispute[], unknown>>;
        policies: z.ZodType<import("./types.js").Policy[], unknown, z.core.$ZodTypeInternals<import("./types.js").Policy[], unknown>>;
        publisherDecisions: z.ZodType<import("./types.js").PublisherDecision[], unknown, z.core.$ZodTypeInternals<import("./types.js").PublisherDecision[], unknown>>;
        rfcs: z.ZodType<import("./types.js").Rfc[], unknown, z.core.$ZodTypeInternals<import("./types.js").Rfc[], unknown>>;
    }>, z.core.$strip>;
}, z.core.$strip>;
export declare const GovernanceDocumentSchema: z.ZodObject<{
    header: z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        createdAtUtcIso: z.ZodString;
        lastModifiedAtUtcIso: z.ZodString;
        documentType: z.ZodLiteral<"rfp-hub/governance">;
    }, z.core.$strip>;
    state: z.ZodObject<{
        global: z.ZodObject<Required<{
            disputes: z.ZodType<import("./types.js").Dispute[], unknown, z.core.$ZodTypeInternals<import("./types.js").Dispute[], unknown>>;
            policies: z.ZodType<import("./types.js").Policy[], unknown, z.core.$ZodTypeInternals<import("./types.js").Policy[], unknown>>;
            publisherDecisions: z.ZodType<import("./types.js").PublisherDecision[], unknown, z.core.$ZodTypeInternals<import("./types.js").PublisherDecision[], unknown>>;
            rfcs: z.ZodType<import("./types.js").Rfc[], unknown, z.core.$ZodTypeInternals<import("./types.js").Rfc[], unknown>>;
        }>, z.core.$strip>;
    }, z.core.$strip>;
    initialState: z.ZodObject<{
        global: z.ZodObject<Required<{
            disputes: z.ZodType<import("./types.js").Dispute[], unknown, z.core.$ZodTypeInternals<import("./types.js").Dispute[], unknown>>;
            policies: z.ZodType<import("./types.js").Policy[], unknown, z.core.$ZodTypeInternals<import("./types.js").Policy[], unknown>>;
            publisherDecisions: z.ZodType<import("./types.js").PublisherDecision[], unknown, z.core.$ZodTypeInternals<import("./types.js").PublisherDecision[], unknown>>;
            rfcs: z.ZodType<import("./types.js").Rfc[], unknown, z.core.$ZodTypeInternals<import("./types.js").Rfc[], unknown>>;
        }>, z.core.$strip>;
    }, z.core.$strip>;
}, z.core.$strip>;
/** Simple helper function to check if a state object is a Governance document state object */
export declare function isGovernanceState(state: unknown): state is GovernancePHState;
/** Simple helper function to assert that a document state object is a Governance document state object */
export declare function assertIsGovernanceState(state: unknown): asserts state is GovernancePHState;
/** Simple helper function to check if a document is a Governance document */
export declare function isGovernanceDocument(document: unknown): document is GovernanceDocument;
/** Simple helper function to assert that a document is a Governance document */
export declare function assertIsGovernanceDocument(document: unknown): asserts document is GovernanceDocument;
//# sourceMappingURL=document-schema.d.ts.map