import type { H2AAbcModelId } from "./abc.js"; import { type H2AEscalationAuthorityKind } from "./escalation.js"; export declare const H2A_RECOURSE_STATES: readonly ["requested", "accepted", "dismissed", "adjudicating", "decided", "appealed", "closed"]; export declare const H2A_RECOURSE_CONFLICT_DISPOSITIONS: readonly ["escalate-not-resolve"]; export type H2ARecourseState = (typeof H2A_RECOURSE_STATES)[number]; export type H2ARecourseConflictDisposition = (typeof H2A_RECOURSE_CONFLICT_DISPOSITIONS)[number]; export interface H2ARecourseProfileDescriptor { readonly modelId: H2AAbcModelId; readonly label: string; readonly allowedStates: readonly H2ARecourseState[]; readonly allowedDeciderKinds: readonly H2AEscalationAuthorityKind[]; readonly defaultDeciderKind: H2AEscalationAuthorityKind; readonly appealable: boolean; readonly conflictDisposition: H2ARecourseConflictDisposition; readonly rationale: string; readonly references: readonly string[]; } export interface H2ARecourseAuditResult { readonly ok: boolean; readonly profileId?: H2AAbcModelId; readonly allowedStates?: readonly H2ARecourseState[]; readonly allowedDeciderKinds?: readonly H2AEscalationAuthorityKind[]; readonly defaultDeciderKind?: H2AEscalationAuthorityKind; readonly appealable?: boolean; readonly adjudicatesDecisions: boolean; readonly issues: readonly string[]; readonly unresolved: readonly string[]; } export declare const H2A_RECOURSE_PROFILES: Readonly<{ readonly A_ENTERPRISE: Readonly<{ modelId: "A_ENTERPRISE"; label: "A - enterprise hierarchy"; allowedStates: readonly ["requested", "accepted", "dismissed", "adjudicating", "decided", "appealed", "closed"]; allowedDeciderKinds: readonly ["PRINCIPAL", "CONTROL", "EXTERNAL_AUTHORITY"]; defaultDeciderKind: "PRINCIPAL"; appealable: true; conflictDisposition: "escalate-not-resolve"; rationale: "Enterprise recourse defaults to PRINCIPAL adjudication; CONTROL handles domain-specific recourse (compliance, ethics, legal) and EXTERNAL_AUTHORITY (regulator, court) keeps the appeal path open."; references: readonly ["REQ-068", "REQ-069", "REQ-071", "DEC-040", "DEC-041", "DEC-043", "DEC-046"]; }>; readonly B_ECOSYSTEM: Readonly<{ modelId: "B_ECOSYSTEM"; label: "B - peer ecosystem"; allowedStates: readonly ["requested", "accepted", "dismissed", "adjudicating", "decided", "appealed", "closed"]; allowedDeciderKinds: readonly ["QUORUM", "EXTERNAL_AUTHORITY", "RECOURSE"]; defaultDeciderKind: "QUORUM"; appealable: true; conflictDisposition: "escalate-not-resolve"; rationale: "Peer ecosystems route recourse to a quorum of stakeholders by default; EXTERNAL_AUTHORITY covers arbitration and RECOURSE captures dedicated inter-org recourse bodies."; references: readonly ["REQ-068", "REQ-069", "REQ-071", "DEC-040", "DEC-041", "DEC-043", "DEC-046"]; }>; readonly C_GOVERNMENT_CITIZEN: Readonly<{ modelId: "C_GOVERNMENT_CITIZEN"; label: "C - public authority ecosystem"; allowedStates: readonly ["requested", "accepted", "dismissed", "adjudicating", "decided", "appealed", "closed"]; allowedDeciderKinds: readonly ["EXTERNAL_AUTHORITY", "RECOURSE", "PRINCIPAL"]; defaultDeciderKind: "EXTERNAL_AUTHORITY"; appealable: true; conflictDisposition: "escalate-not-resolve"; rationale: "Public-authority recourse defaults to EXTERNAL_AUTHORITY (court, regulator) with dedicated RECOURSE bodies for administrative review; PRINCIPAL remains usable for internal-administration steps before the external chain."; references: readonly ["REQ-068", "REQ-069", "REQ-071", "DEC-040", "DEC-041", "DEC-043", "DEC-046"]; }>; readonly D_SAFE: Readonly<{ modelId: "D_SAFE"; label: "D - agentic-delivery squad"; allowedStates: readonly ["requested", "accepted", "dismissed", "adjudicating", "decided", "appealed", "closed"]; allowedDeciderKinds: readonly ["PRINCIPAL", "CONTROL", "EXTERNAL_AUTHORITY"]; defaultDeciderKind: "PRINCIPAL"; appealable: true; conflictDisposition: "escalate-not-resolve"; rationale: "Delivery disputes resolve at the owning PRINCIPAL (epic/product); CONTROL handles architecture/security/compliance recourse; EXTERNAL_AUTHORITY keeps the contracting-firm dispute/arbitration path open."; references: readonly ["REQ-068", "REQ-069", "REQ-071", "DEC-040", "DEC-041", "DEC-043", "DEC-046", "DEC-080"]; }>; }>; export declare function getRecourseProfile(modelId: string): H2ARecourseProfileDescriptor | undefined; export declare function auditRecourseProfile(modelId: string): H2ARecourseAuditResult; //# sourceMappingURL=recourse.d.ts.map