import { type BoundaryOutcome, type EstablishedNegativeResolution, type EstablishedNegativeShape, type EstablishmentGap, type LifecycleStateResult, type LifecycleVerdict, type OutstandingCause } from './types.js'; /** Thrown when a caller asks for a `LifecycleStateResult` the vocabulary does not allow. * A shape rule broken at construction is a programming error, not a verdict. */ export declare class LifecycleStateError extends Error { readonly code: string; constructor(code: string, message: string); } export declare function isLifecycleVerdict(value: unknown): value is LifecycleVerdict; export declare function isBoundaryOutcome(value: unknown): value is BoundaryOutcome; export declare function isEstablishmentGap(value: unknown): value is EstablishmentGap; export declare function isEstablishedNegativeShape(value: unknown): value is EstablishedNegativeShape; /** What `lifecycleState` accepts. Same members as `LifecycleStateResult`, and the * constructor is what turns it into one. */ export interface LifecycleStateInput { readonly verdict: LifecycleVerdict; readonly reason_code: string; readonly missing?: readonly EstablishmentGap[]; readonly applied_default?: string; readonly outstanding?: readonly OutstandingCause[]; } /** Build a `LifecycleStateResult`, enforcing the vocabulary's shape rules. * * Rules, each with the reason it exists: * * 1. `verdict` is one of the six. There is no seventh. "Unexecutable" in particular is an * EXECUTION OUTCOME, not a verdict: the artifact stays valid and what fails is the * attempt to carry out the invocation, so it belongs in an execution record under a * `referent_unresolvable` reason, not here. * 2. `reason_code` is required and SCREAMING_SNAKE_CASE. Two findings that share a verdict * name must be told apart by their codes. * 3. `missing` is present with at least one member exactly when the verdict is * `not_established`, and absent otherwise. A denial on an unestablished state has to * record which of source, freshness or coverage was missing, and a verdict the verifier * DID reach has no gap to report. * 4. `outstanding` is present with at least one member exactly when the verdict is * `suspended` or `restricted`, and absent otherwise. Causes compose, so the verdict * carries the set that remains rather than a flag. * 5. `applied_default` may not appear on `not_established`. If a declared default applied, * the verifier reached a conclusion and the verdict is that conclusion. * * Concept source: aeoess/agent-authority-lifecycle, invariant candidates v2 sections 2.2, * 2.3, 2.4 and 3, and candidates BROAD-L7 and CAND-05. All proposed. */ export declare function lifecycleState(input: LifecycleStateInput): LifecycleStateResult; /** Build the evidential `not_established` (use A) with its mandatory limbs. * * Reach for this only when the verifier CANNOT REACH a conclusion. For a negative the * verifier HAS reached, call `resolveEstablishedNegative` instead and report what it * gives you. */ export declare function notEstablished(missing: readonly EstablishmentGap[], reasonCode: string): LifecycleStateResult; /** Map an established negative (use B) to the subject and output it actually belongs to. * * None of the three resolves to `not_established`. Two of them are not artifact verdicts * at all: a composition rule that is not satisfied and a pinned referent that is * established to have changed both deny the ACTION at a boundary, and neither makes any * artifact invalid. * * Concept source: aeoess/agent-authority-lifecycle, invariant candidates v2 section 3. * Proposed. */ export declare function resolveEstablishedNegative(shape: EstablishedNegativeShape): EstablishedNegativeResolution; //# sourceMappingURL=state.d.ts.map