/** * What a Look property's value is allowed to be: the string vocabulary each * property publishes, the compile-time fold that answers for a `const` * keyword, the unit a bare number is missing, and the filter spelling that has * a builder behind it. * * D115 P4 R3b. `entries.ts` asks these questions of every entry it walks and * `builders.ts` routes the transition builder's property argument through the * same vocabulary, so one property has one answer wherever it is written. */ import { type Span } from "@velarscript/compiler"; import { type Expression, type ValueType } from "@velarscript/compiler/extension"; import { type LookValueSite } from "../look-sites.ts"; import { type LookAnalysisHost } from "./host.ts"; /** * `subject` names the position in the message. It is the property itself * everywhere except the `transition(...)` builder, whose first argument takes * `transitionProperty`'s vocabulary but is not written as that property — a * refusal that named the longhand there would name a spelling the author * never wrote. */ export declare function validateLookStringVocabulary(host: LookAnalysisHost, name: string, value: Expression, subject?: string, site?: LookValueSite): boolean; /** * D65 rule 168 closed the closed sets against misspelled literals, and D65 * item 3 makes a `const` string a first-class design token — so the two have * to agree. A name or a record field that folds to a bare CSS keyword is * checked exactly as the literal spelling of it is; anything that folds to * composed CSS text (a builder result, a unit, a gradient) is not a keyword * and is left to the type and to the builder's own checks. */ export declare function foldedLookKeyword(host: LookAnalysisHost, value: Expression): readonly string[] | null; /** * LOK-D3: a bare number on a length property reaches CSS as a declaration the * browser discards. The union already rejects it; this diagnostic replaces the * union dump with the unit the author meant to write. */ export declare function reportLookNumberWithoutUnit(host: LookAnalysisHost, name: string, actual: ValueType, expected: ValueType, valueSpan: Span): boolean; /** * A complete CSS filter function whose arguments fit the checked Look * builders has one equivalent source spelling. The parser deliberately * stops at the first function or argument grammar it cannot prove, leaving * arbitrary CSS and externally defined filter functions as ordinary text. */ export declare function adviseLookFilterSpelling(host: LookAnalysisHost, name: string, value: Expression, site: LookValueSite): void; //# sourceMappingURL=values.d.ts.map