import type { H2AEnforcementPlan } from "./types.js"; export declare const H2A_ESCALATION_CHANNELS: readonly ["advise", "decide", "alert"]; export declare const H2A_ESCALATION_AUTHORITY_KINDS: readonly ["PRINCIPAL", "EXECUTIF", "QUORUM", "CONTROL", "EXTERNAL_AUTHORITY", "RECOURSE"]; export type H2AEscalationChannel = (typeof H2A_ESCALATION_CHANNELS)[number]; export type H2AEscalationAuthorityKind = (typeof H2A_ESCALATION_AUTHORITY_KINDS)[number]; export interface H2AEscalationTargetRequest { readonly scope: string; readonly channel: string; readonly trigger?: string; readonly domain?: string; } export interface H2AEscalationResolveOptions { /** * Explicit mono-human fallback target. DEC-024 keeps PRINCIPAL as the * default only when the caller provides that local principal target. */ readonly fallbackPrincipal?: string; } export interface H2AEscalationResolvedTarget { readonly ok: true; readonly scope: string; readonly channel: H2AEscalationChannel; readonly trigger?: string; readonly domain?: string; readonly authorityKind: H2AEscalationAuthorityKind; readonly target: string; readonly source: "enforcement-plan" | "fallback-principal"; } export interface H2AEscalationUnresolvedTarget { readonly ok: false; readonly scope?: string; readonly channel?: string; readonly trigger?: string; readonly domain?: string; readonly issues: readonly string[]; } export type H2AEscalationResolution = H2AEscalationResolvedTarget | H2AEscalationUnresolvedTarget; export declare function resolveEscalationTarget(plan: Pick, request: H2AEscalationTargetRequest, options?: H2AEscalationResolveOptions): H2AEscalationResolution; export declare function assertEscalationTargetResolved(resolution: H2AEscalationResolution): asserts resolution is H2AEscalationResolvedTarget; //# sourceMappingURL=escalation.d.ts.map