import type { H2AContract, H2AEngagement, H2APolicy } from "./types.js"; export type H2AContractualArtifactKind = "CONTRACT" | "POLICY" | "ENGAGEMENT"; export type H2AContractualArtifact = H2AContract | H2APolicy | H2AEngagement; export type H2AContractualArtifactProfile = "normative-container" | "durable-rule" | "operational-executable"; export interface H2AContractualArtifactProfileDescriptor { readonly kind: H2AContractualArtifactKind; readonly profile: H2AContractualArtifactProfile; readonly durable: boolean; readonly executable: boolean; readonly canContainPolicies: boolean; readonly canReferencePolicies: boolean; readonly canInstantiateEngagements: boolean; } export interface H2AContractualArtifactAuditResult { readonly ok: boolean; readonly kind?: string; readonly profile?: H2AContractualArtifactProfile; readonly issues: readonly string[]; } export declare const H2A_CONTRACTUAL_ARTIFACT_PROFILES: Readonly<{ readonly CONTRACT: Readonly<{ kind: "CONTRACT"; profile: "normative-container"; durable: true; executable: false; canContainPolicies: true; canReferencePolicies: true; canInstantiateEngagements: true; }>; readonly POLICY: Readonly<{ kind: "POLICY"; profile: "durable-rule"; durable: true; executable: false; canContainPolicies: false; canReferencePolicies: false; canInstantiateEngagements: false; }>; readonly ENGAGEMENT: Readonly<{ kind: "ENGAGEMENT"; profile: "operational-executable"; durable: false; executable: true; canContainPolicies: false; canReferencePolicies: true; canInstantiateEngagements: false; }>; }>; export declare function getContractualArtifactProfile(kind: string): H2AContractualArtifactProfileDescriptor | undefined; export declare function auditContractualArtifact(value: unknown): H2AContractualArtifactAuditResult; export declare function assertContractualArtifactInvariants(value: unknown): asserts value is H2AContractualArtifact; //# sourceMappingURL=contractual.d.ts.map