import { type TCorePropositionalExpression, type TCorePropositionalVariable } from "../../schemata/index.js"; import type { TLinkValidationResult, TPremiseElements, TResponseLink } from "../../types/response.js"; import type { ArgumentEngine, TArgumentEngineSnapshot } from "../argument-engine.js"; type TExpressionLike = Pick & { parentId: string | null; operator?: string; variableId?: string; }; /** * Reads a premise's expressions as a link. A premise is a link exactly when * its whole content is one variable expression, or `NOT` over one, and that * variable is expression-bound. The move follows from the variable's aspect * and whether `NOT` is present; nothing else is stored, so a link cannot * disagree with its own content. * * @returns The link, or `undefined` when the premise is not one. */ export declare function readLink(premiseId: string, expressions: readonly TExpressionLike[], getVariable: (id: string) => TCorePropositionalVariable | undefined): TResponseLink | undefined; /** Every link of a response, in premise order. Empty for a standard argument. */ export declare function listLinks(response: ArgumentEngine): TResponseLink[]; /** Throws unless `targetSnapshot` is the argument and version `response` answers. */ export declare function assertTargetSnapshot(response: ArgumentEngine, targetSnapshot: TArgumentEngineSnapshot): void; /** Every expression of a snapshot, by id. */ export declare function snapshotExpressions(snapshot: TArgumentEngineSnapshot): Map; /** Every variable of a snapshot, by id. */ export declare function snapshotVariables(snapshot: TArgumentEngineSnapshot): Map; /** * Checks a response's expression bindings against the snapshot of the * argument it answers. * * @throws When `targetSnapshot` is not the argument and version the response * answers. */ export declare function validateLinks(response: ArgumentEngine, targetSnapshot: TArgumentEngineSnapshot): TLinkValidationResult; /** * Every expression id and claim id in one premise of a snapshot. Claims are * those of the premise's claim-bound variable expressions; bindings to other * premises are not followed. * * @throws When the snapshot has no such premise. */ export declare function elementsWithinPremise(targetSnapshot: TArgumentEngineSnapshot, premiseId: string): TPremiseElements; export {}; //# sourceMappingURL=links.d.ts.map