/**
 * AnchoredAuthorization — the ONLY typed shape that may authorize an
 * irreversible action (Threadline Robustness Phase 1, G2 / D-C; CMT-1362).
 *
 * THE POSITIVE BOUNDARY. G2 ("prose is inert") is enforced POSITIVELY, not as a
 * negative audit that rots: an irreversible-action gate may accept authorization
 * ONLY as a typed reference to a durable, operator-anchored, audited artifact —
 * a Coordination Mandate, a ReviewExchange, or an OperatorConfirm. NEVER a raw
 * string, a transcript, a conversation/history summary, or a ContentClassifier
 * output. A Threadline prose message has no pathway to this type by construction,
 * so a "Dawn confirmed" / "Echo confirmed" in a message body can never become
 * authority — there is nothing to detect-and-block because prose is inert.
 *
 * This file deliberately carries NO import of ConversationStore / ThreadlineRouter
 * / message envelopes / ContentClassifier — the import-boundary test asserts that
 * an irreversible-action gate's authorization input is THIS type and that this
 * module never learns about prose. Adding a prose pathway here is a build break.
 */
/**
 * A reference to an anchored authorization artifact. It is a typed REFERENCE
 * (kind + id + the audit hash that proves the gate decision authorizing it), not
 * free text. The referenced artifact lives in its own durable, hash-chained
 * store (MandateStore / ReviewExchange / OperatorConfirmGate); the gate
 * re-verifies the reference against that store before acting on it.
 */
export type AnchoredAuthorization = {
    kind: 'mandate';
    /** Mandate id in the MandateStore. */
    id: string;
    /** The hash of the mandate-gate decision that authorized this action. */
    auditHash: string;
} | {
    kind: 'review-exchange';
    /** ReviewExchange id. */
    id: string;
    /** The audit hash of the gate decision behind the accepted sign-off. */
    auditHash: string;
} | {
    kind: 'operator-confirm';
    /** The operator-confirm requestId. */
    id: string;
    /** Who authorized (the verified operator), for the audit trail. */
    authorizedBy: string;
};
/**
 * Type guard: is `input` a well-formed AnchoredAuthorization? Returns false for
 * ANY string, number, null, array, transcript-shaped object, history summary, or
 * ContentClassifier result — i.e. for every prose-derived shape. This is the
 * runtime half of the positive boundary; the import-boundary test is the static
 * half.
 */
export declare function isAnchoredAuthorization(input: unknown): input is AnchoredAuthorization;
/**
 * Enforce the positive boundary: return the typed authorization or THROW. An
 * irreversible-action gate calls this on its authorization input so that a
 * string / transcript / summary / classifier output can never authorize the
 * action — the gate fails closed on the authority path (a deliberate contrast
 * with the lease send-gate, which fails OPEN for inert prose).
 */
export declare function requireAnchoredAuthorization(input: unknown, context: string): AnchoredAuthorization;
/** Thrown when an irreversible-action gate is handed a non-anchored authorization. */
export declare class AnchoredAuthorizationError extends Error {
    readonly context: string;
    constructor(context: string, received: unknown);
}
//# sourceMappingURL=AnchoredAuthorization.d.ts.map