/** * The walk over a Look literal's entries: composition, conditions, targets, and * the ordinary `property = value` pairs, plus the two rules that read a scope * rather than one entry — duplicate properties and shorthand overlap. * * D115 P4 R3b. LOK-D1 also lives here: a Look literal is constructed once where * it is written, so a reactive read inside one is a snapshot and is rejected * with the two spellings that stay live. */ import { type Span } from "@velarscript/compiler"; import { type Expression } from "@velarscript/compiler/extension"; import { type WebJsxElementExpression as JSXElementExpression, type WebLookExpression } from "../../ast.ts"; import { type LookAnalysisHost } from "./host.ts"; export declare function analyzeLookEntries(host: LookAnalysisHost, entries: WebLookExpression["entries"], insideTarget: boolean, nested: boolean, inheritedTerms: number, scopeKey?: string): void; /** * LOK-D1: a `look:` literal is constructed once, where it is written. Its * conditions and its values are snapshot positions — a reactive read inside * one compiles cleanly and then never updates, which is the quietest trap in * the visual language. The two spellings that stay live are the JSX * expression position and the `look:property` directive, so the read is * rejected here and both are taught. */ export declare function reportLookSnapshotReads(host: LookAnalysisHost, expression: Expression): void; /** * Records one entry in its lowered scope (condition signature plus target) so * two sibling blocks with the same condition report the property they both * set. Returns false when the entry repeats. LOK-I4: the charter's duplicate * promise used to hold only inside a single indented scope. */ export declare function recordLookEntry(host: LookAnalysisHost, scopeKey: string, name: string): boolean; /** * The vocabulary checks a Look property shares between the block spelling and * the `look:`/`style:` directives. Returns false when the entry is already * reported and its value needs no further checking. LOK-I1: an unrecognized * property no longer co-reports a `stringType` fallback assignment error. */ export declare function analyzeLookValue(host: LookAnalysisHost, name: string, value: Expression, entrySpan: Span, directive: "look" | "style" | null): boolean; /** * D104 rule 2 — the wider half of the promise VEL5039 already made. A * repeated property name is refused because the second entry overwrites the * first and Look has no source order to settle which is meant; a shorthand * beside a longhand it writes is the same defect with two spellings, and it * is the one that hid thirty-six dead declarations in a consumer's shell. * Reports once against the entry that completes the pair. */ export declare function reportLookShorthandOverlap(host: LookAnalysisHost, scopeKey: string, name: string, span: Span): void; /** * The same rule where the properties are written as element directives. A * `look:` directive lowers to exactly the rule a block entry does, so an * element carrying `look:padding` and `look:paddingTop` has the pair in the * same scope as surely as a block does. The `style:` directives are not * checked here: they compose one inline style object, where the browser's own * source order settles the pair. */ export declare function reportLookDirectiveOverlap(host: LookAnalysisHost, expression: JSXElementExpression): void; //# sourceMappingURL=entries.d.ts.map