/** * What a derived value refuses and what a derived read is: the call that should * have been a bare read, the assignment that has no location to land on, and the * reading that decides whether a name really resolves to a reactive derivation * here. * * D115 P4 R3c. The three sit above `bindings.ts` because each of them starts by * asking which declaration a name resolves to and then says what follows. */ import { type Expression, type Statement, type ValueType } from "@velarscript/compiler/extension"; import { type ReactiveNamesHost } from "./host.ts"; /** * D71 rule 182: a declared derived value is read bare, exactly like state. * Calling one is the habit the retired `computed(...)` accessor taught, and it * is also what a half-migrated project looks like from the importing side — so * the answer names the one spelling and carries the edit that reaches it, * which is what lets `velar fix` finish a migration that crosses modules. */ export declare function calledComputedBinding(host: ReactiveNamesHost, expression: Extract): ValueType | null; /** * D71 rule 182: a derived value has no writable location behind it, so the * const message ("cannot assign to const binding") would name the wrong * reason. Answering here means the reader is told what a derived value is and * which spelling holds a value that is written. */ export declare function rejectComputedAssignment(host: ReactiveNamesHost, statement: Extract): boolean; /** * True when a name both belongs to a derived reactive declaration and still * resolves to one here: a computed accessor is a zero-argument function, and a * resource or action handle is a record with its reactive fields. An ordinary * binding that happens to share the name — a function parameter, a local — is * not a reactive read. */ export declare function derivedReactiveRead(host: ReactiveNamesHost, name: string): boolean; //# sourceMappingURL=derived.d.ts.map