import { type TCoreArgument, type TCoreClaim, type TCorePremise, type TCorePropositionalExpression, type TCorePropositionalVariable, type TClaimBoundVariable } from "../../schemata/index.js"; import type { TCoreVariableAssignment } from "../../types/evaluation.js"; import type { TClaimLookup } from "../interfaces/index.js"; import type { PremiseEngine } from "../premise-engine.js"; import type { VariableManager } from "../variable-manager.js"; /** * What these functions read from an `ArgumentEngine`, built by the engine * for each call. */ export type TClaimVariableContext = { variables: VariableManager; claimLibrary: TClaimLookup; }; /** * Walks `ctx.variables.toArray()` once and returns every claim-bound * variable whose bound claim has type `"axiomatic"`. Shared between * `applyAxiomaticForcedAssignments` (the evaluate-time pre-pass) and * `getAxiomaticBoundVariableIds` (the checkValidity carve-out). */ export declare function collectAxiomaticBoundVariables(ctx: TClaimVariableContext): TClaimBoundVariable[]; /** * For each claim-bound variable in this argument, look up the bound claim's * type. If the type is "axiomatic": * - Reject any caller-provided assignment for the variable * (AXIOM_VARIABLE_ASSIGNMENT_FORBIDDEN). Key presence is checked via * `Object.hasOwn` so an explicit `undefined` value is also rejected. * - Force the variable's effective assignment to `true`. * Returns the rewritten assignment map; non-axiomatic variables pass through. */ export declare function applyAxiomaticForcedAssignments(ctx: TClaimVariableContext, callerVariables: TCoreVariableAssignment): TCoreVariableAssignment; /** * Returns IDs of claim-bound variables whose bound claim has type * `"axiomatic"` — these are forced-true at evaluation time. */ export declare function getAxiomaticBoundVariableIds(ctx: TClaimVariableContext): Set; /** * Returns IDs of every grounded claim-bound variable — axiomatic *and* * citation — for `checkValidity`'s carve-out. * * Deliberately wider than `getAxiomaticBoundVariableIds`, and the two must * stay separate. Validity asks a structural question about the argument and * generates its own rows, so a cited claim is what its source says: it gets * no free column and is pinned true. Evaluation asks the *reader's* * question, where a citation is merely seeded true by the default * assignment and the reader may assign it either way — so * `applyAxiomaticForcedAssignments` keeps the narrow set. Widening that * pre-pass to this one would make a reader's assignment on any * citation-backed claim throw `AXIOM_VARIABLE_ASSIGNMENT_FORBIDDEN`. */ export declare function getGroundedBoundVariableIds(ctx: TClaimVariableContext): Set; /** * Returns `true` iff the variable is claim-bound to a citation or * axiomatic claim — the "grounded" claim types that a default assignment * seeds `true`. * * Two callers, and they are not interchangeable with the narrower * axiomatic-only collector: the default assignment seeds every grounded * variable `true`, and `checkValidity` excludes every grounded variable * from its enumeration. Evaluation's forced-assignment pre-pass uses the * *narrow* set on purpose — grounded is not the same as unassignable. */ export declare function isGroundedVariable(ctx: TClaimVariableContext, variable: TCorePropositionalVariable): boolean; /** Every claim-bound variable bound to `claimId`, in variable order. */ export declare function getVariableIdsForClaim(ctx: TClaimVariableContext, claimId: string): string[]; /** The claim a claim-bound variable is bound to, if it is one. */ export declare function getClaimIdForVariable(ctx: TClaimVariableContext, variableId: string): string | undefined; /** * The default assignment `ArgumentEngine.deriveDefaultAssignment` documents, * over `premises` (the engine's premise list, read by the caller). */ export declare function deriveDefaultAssignment(ctx: TClaimVariableContext, premises: PremiseEngine[]): TCoreVariableAssignment; //# sourceMappingURL=claim-variables.d.ts.map