import { HSON_META_MARKUP_PREFIX } from "./constants.js"; import type { HsonMeta } from "./types.js"; export type HsonMetadataKey = keyof HsonMeta; export type HsonMetadataValueMode = "valued" | "flag"; export type HsonMetadataHsonProjection = "quid-sigil" | "array-order"; export type HsonMetadataDefinition = Readonly<{ key: HsonMetadataKey; markupName: `${typeof HSON_META_MARKUP_PREFIX}${HsonMetadataKey}`; allowsNodeTag(nodeTag: string): boolean; valueMode: HsonMetadataValueMode; hsonProjection: HsonMetadataHsonProjection; validateValue(value: unknown): value is string; }>; /** The sole production registry for canonical Hson structural metadata. */ export declare const HSON_METADATA_REGISTRY: Readonly<{ quid: Readonly<{ key: "quid"; markupName: "hson:quid"; allowsNodeTag: (nodeTag: string) => boolean; valueMode: "valued"; hsonProjection: "quid-sigil"; validateValue: (value: unknown) => value is string; }>; index: Readonly<{ key: "index"; markupName: "hson:index"; allowsNodeTag: (nodeTag: string) => boolean; valueMode: "valued"; hsonProjection: "array-order"; validateValue: (value: unknown) => value is string; }>; }>; export declare function is_hson_metadata_key(value: string): value is HsonMetadataKey; export declare function hson_metadata_definition(key: string): HsonMetadataDefinition | undefined; export declare function hson_metadata_key_for_markup(markupName: string): HsonMetadataKey | undefined; /** Detect syntax only. Registry lookup remains the validity decision. */ export declare function hson_metadata_candidate_key(markupName: string): string | undefined; export type HsonMetadataPolicyResult = Readonly<{ valid: true; definition: HsonMetadataDefinition; }> | Readonly<{ valid: false; reason: string; }>; export declare function hson_metadata_policy(nodeTag: string, key: string): HsonMetadataPolicyResult; export declare function hson_metadata_value_is_valid(key: string, value: unknown): value is string; export type HsonMetadataAdmissionResult = Readonly<{ valid: true; key: HsonMetadataKey; definition: HsonMetadataDefinition; value: string; }> | Readonly<{ valid: false; reason: string; }>; /** Shared semantic admission used after either string or direct-DOM lexing. */ export declare function admit_hson_metadata_markup(nodeTag: string, markupName: string, value: unknown): HsonMetadataAdmissionResult; //# sourceMappingURL=hson-metadata.d.ts.map