import type { Expression, Program, Span } from "@velarscript/compiler/extension"; export type LookStaticValue = { readonly kind: "number"; readonly value: number; } | { readonly kind: "unit"; readonly value: number; readonly unit: string; } | { readonly kind: "css"; readonly value: string; } | { readonly kind: "object"; readonly properties: Readonly>; }; export declare function isLookStaticValue(value: unknown): value is LookStaticValue; /** * The static CSS a Look value lowers to at compile time: literals, unit values, * arithmetic over them, `velar/look` builder calls, and const bindings — local * or imported — that hold any of those. `keyframes:` needs the text itself * because a stop becomes a real `@keyframes` rule, while a Look property keeps * its runtime value; this is the one checker both spellings read, so a design * token written once works in both (D60 rule 151). */ export declare function lookStaticCssValue(expression: Expression, values?: ReadonlyMap): string | null; export declare function evaluateLookStaticExpression(expression: Expression, values: ReadonlyMap): LookStaticValue | null; /** * A module's folded Look constants: what each name holds, and where the * expression it folded from is written. * * D114 F9-web (WB-I7): a builder slot that refuses a folded constant has to * report at the initializer, because that is where the edit is — the argument * only names the binding. `sites` carries no entry for a constant this compile * imported: another module's line is not this compile's to point at. */ export interface LookStaticScope { readonly values: ReadonlyMap; readonly sites: ReadonlyMap; } export declare function collectLookStaticScope(program: Program, imported?: ReadonlyMap): LookStaticScope; export declare function collectLookStaticValues(program: Program, imported?: ReadonlyMap): ReadonlyMap; export declare function exportedLookStaticValues(program: Program): ReadonlyMap; export declare function lookStaticCss(value: LookStaticValue): string | null; export declare function lookStaticIdentity(value: unknown): string; //# sourceMappingURL=look-static.d.ts.map