import { type ExtensionTypeSyntaxResolver, type ExtensionValueType, type ValueType } from "@velarscript/compiler/extension"; export declare const VELAR_WEB_TYPE_EXTENSION_ID = "@velarscript/web"; /** * D72 rule 186: every type name the Web extension publishes, in one table. * * It is the single source for three things that used to be written out * separately and therefore drifted: the analysis contract's `primitiveTypes`, * the `textForm` question, and the refusal of a user declaration that would * shadow one of these names. D51 rule 109 settled that such a name is refused * where it is introduced rather than where it is used — the use site can only * report an ambiguity nobody can act on — and this is what makes that refusal * follow the table instead of a hand-copied list of six event types. * * `Component` and `WebNode` belong here for the same reason the rest do: a user * `type Component:` loses to the extension's reading at every use. */ export declare const WEB_OWNED_TYPE_NAMES: ReadonlySet; /** The Web event hierarchy, derived from the published table rather than restated. */ export declare const WEB_EVENT_TYPE_NAMES: ReadonlySet; /** * D71 rule 184: the interface annotation that says an export is a `computed` * declaration rather than a `state` one. Both travel through `reactiveExports` * so an imported bare read lowers through `.get()`, and this is what tells the * importing module that the derived one is read-only — without it, `bind={...}` * on an imported derived value would compile to a write nothing receives. */ export declare const WEB_COMPUTED_EXPORT: Readonly<{ velarWebExport: "computed"; }>; export declare function isWebComputedExport(value: unknown): boolean; /** * D114 0.29.0 LK-C3: what a length-percentage slot takes. `min`, `max` and * `clamp` exist in CSS mainly to mix `%` with `px`, and each of their slots used * to take `Length` alone, so the primary use had no spelling in Look at all. * The declared result is the widest of the three; `analysis/look-values.ts` * folds a call whose slots are all one kind back to that kind, so the tour's * `clamp(1rem, 4vw, 3rem)` is still a `Length`. */ export declare const webLengthPercentageInput: ValueType; export type WebExtensionType = ExtensionValueType & { readonly extensionId: typeof VELAR_WEB_TYPE_EXTENSION_ID; }; export type WebNodeType = WebExtensionType & { readonly family: "node"; readonly role: "value"; }; export type WebComponentType = WebExtensionType & { readonly family: "component"; readonly role: "contract" | "constructor"; }; export declare const webNodeType: WebNodeType; export declare function webComponentContract(properties?: ReadonlyMap, requiredProperties?: ReadonlySet, handle?: ValueType | null): WebComponentType; export declare function webComponentConstructor(name: string, properties: ReadonlyMap, requiredProperties: ReadonlySet, handle: ValueType | null, intrinsic?: string): WebComponentType; export declare function isWebExtensionType(type: ValueType): type is WebExtensionType; export declare function isWebNodeType(type: ValueType): type is WebNodeType; export declare function isWebComponentType(type: ValueType): type is WebComponentType; export declare function isWebComponentConstructor(type: ValueType): type is WebComponentType; export declare function webComponentName(type: WebComponentType): string | null; export declare function webComponentHandle(type: WebComponentType): ValueType | null; export declare function webComponentIntrinsic(type: WebComponentType): string | null; export declare const resolveWebTypeSyntax: ExtensionTypeSyntaxResolver; export declare function normalizeWebComponentType(type: WebComponentType, normalizeProperty: (type: ValueType) => ValueType, normalizeArgument?: (type: ValueType) => ValueType): WebComponentType; export declare function isWebTypeAssignable(actual: ExtensionValueType, expected: ExtensionValueType, assign: (actual: ValueType, expected: ValueType) => boolean): boolean | undefined; //# sourceMappingURL=types.d.ts.map