import { type Example } from "./example.js"; import { Maybe } from "./maybe.js"; import { Schema } from "./schema.js"; export type VariableSpec = { readonly name: string; readonly description: string; readonly default: Maybe; readonly isSensitive: boolean; readonly schema: Schema; readonly examples: Example[]; }; export type Variable = { readonly spec: VariableSpec; readonly value: () => Maybe>; readonly nativeValue: () => Maybe; readonly marshal: (value: T) => string; readonly unmarshal: (value: string) => T; }; export type Value = { readonly verbatim: string; readonly canonical: string; readonly native: T; readonly isDefault: boolean; }; export type ValueOfVariable> = V extends Variable ? T : never; export declare function createVariable(spec: VariableSpec): Variable;