import type { Program, Value, Expression } from './program'; export interface Parameter { name: string; default?: Value; /** * Dice-anchored expression default (e.g. `default: d6`, `default: 4d6 drop * 1`, `default: 2d6 + 1`). Set when the parameter's default is anything * other than a literal value. */ defaultExpression?: Expression; label?: string; description?: string; min?: number; max?: number; /** Increment of the admissible value grid `{min + k·step}`. */ step?: number; enum?: Value[]; /** Display labels for `enum`, index-aligned with it; present only for the * object form of the declaration. */ enumLabels?: string[]; } /** * Whether `value` lies on the admissible grid `{ min + k·step }`. Uses a small * absolute tolerance so float-representable steps (e.g. `step: 0.1`, where * `(0.3 - 0) / 0.1` is `2.9999…`) are not spuriously rejected. Shared by the * parser (default/grid validation) and the evaluator (override validation) so * the two cannot disagree on what "on the grid" means. */ export declare function isOnStepGrid(value: number, min: number, step: number): boolean; export declare const ProgramParameters: { list(program: Program): Parameter[]; };