/** * What a module's `look:` values become: the runtime value a `look:` expression * evaluates to, and the stylesheet the module ships beside its JavaScript. * * D115 P4 R3d: the family owns both halves because they are one lowering read * twice — `emitLook` writes the token a rule is addressed by, and `prepareLooks` * writes the rule that token selects. `emit/look-css.ts` holds the token itself, * so neither half can drift from the other. */ import type { CompilerStyleSegments, Expression, Program } from "@velarscript/compiler/extension"; import { type WebLookExpression as LookExpression } from "../ast.ts"; import { type LookStaticValue } from "../look-static.ts"; /** * What Look emission reads and writes on the emitter. `lookStaticValues`, * `cssSegments` and `cssOutput` are live: `prepareLooks` assigns them and the * emitter's `css()` / `styleSegments()` answer with what it assigned. */ export interface LookEmitHost { cssOutput: string; cssSegments: CompilerStyleSegments; readonly importedLookStaticValues: ReadonlyMap; readonly keyframeNames: Map; readonly lookKeywordProperties: Set; lookStaticValues: ReadonlyMap; readonly resourceContents: ReadonlyMap; emitCondition(expression: Expression): string; emitMappedExpression(expression: Expression): string; } export declare function emitLook(host: LookEmitHost, expression: LookExpression): string; export declare function emitLookArithmetic(host: LookEmitHost, expression: Extract): string; /** * The module's Look state, prepared before a single statement is emitted: the * static values a condition may fold against, the stylesheet, and the keyframe * name every `keyframes:` expression will be emitted as. */ export declare function prepareLooks(host: LookEmitHost, program: Program): void; //# sourceMappingURL=look.d.ts.map