import { type Constraint } from "./constraint.js"; import { Maybe } from "./maybe.js"; import type { ValueOfVariable, Variable } from "./variable.js"; export type ValueMap>> = { readonly [N in keyof VM]: ValueOfVariable; }; export type VariableCompositeSpec>> = { readonly variables: VM; readonly resolve: (values: ValueMap) => T; readonly constraints: Constraint[]; }; export type VariableComposite>> = { readonly spec: VariableCompositeSpec; readonly value: () => Maybe; }; export declare function createVariableComposite>>(spec: VariableCompositeSpec): VariableComposite; export declare class VariableCompositeError extends Error { readonly blame: Map, Error>; constructor(message: string, blame: Map, Error>); } export declare class PartialVariableCompositeError extends VariableCompositeError { readonly setNames: string[]; readonly unsetNames: string[]; readonly blame: Map, Error>; constructor(setNames: string[], unsetNames: string[], blame: Map, Error>); }