export type HostSourceRange = Readonly<{ start: number; end: number; }>; export type HostSourcePosition = Readonly<{ offset: number; line: number; column: number; }>; export type EmbeddedHsonSource = Readonly<{ fileName: string; hostText: string; tagRange: HostSourceRange; templateRange: HostSourceRange; bodyRange: HostSourceRange; }>; export type EmbeddedHsonSourceInvalidReason = "descriptor-not-object" | "file-name-invalid" | "host-text-invalid" | "tag-range-invalid" | "template-range-invalid" | "body-range-invalid" | "tag-after-template" | "body-outside-template"; export type EmbeddedHsonSourceValidation = Readonly<{ status: "valid"; source: EmbeddedHsonSource; }> | Readonly<{ status: "invalid"; reason: EmbeddedHsonSourceInvalidReason; }>; /** Validate and freeze one exact original-host embedded Hson descriptor. */ export declare function validate_embedded_hson_source(value: unknown): EmbeddedHsonSourceValidation; export declare function read_embedded_hson_body(source: EmbeddedHsonSource): string; /** Return the smallest Unicode-safe visible range at one UTF-16 source offset. */ export declare function source_point_range_at(sourceText: string, index: number): HostSourceRange | undefined; export type HostSourceLocator = Readonly<{ positionAt(offset: number): HostSourcePosition | undefined; }>; /** Build one reusable line-start table for a host source. */ export declare function create_host_source_locator(hostText: string): HostSourceLocator | undefined; export declare function host_source_position_at(hostText: string, offset: number): HostSourcePosition | undefined; //# sourceMappingURL=embedded-hson-source.d.ts.map