export interface StringLiteralSyntax { readonly prefix: "" | "f" | "r" | "rf" | "fr"; readonly prefixLength: number; readonly quote: "\"" | "'" | "`"; readonly raw: boolean; readonly interpolated: boolean; readonly canonical: boolean; } export interface StringLiteralScan extends StringLiteralSyntax { readonly contentStart: number; readonly contentEnd: number; readonly content: string; readonly contentOffsets?: readonly number[]; readonly end: number; readonly closed: boolean; readonly layout: boolean; readonly recoverAtLineStart: boolean; readonly indentationError?: { readonly start: number; readonly end: number; }; } export interface StringTokenPayload { readonly prefixLength: number; readonly quote: "\"" | "'" | "`"; readonly raw: boolean; readonly layout: boolean; readonly contentOffsets?: readonly number[]; } export declare function stringLiteralSyntax(source: string, start: number): StringLiteralSyntax | null; export declare function scanStringLiteral(source: string, start: number): StringLiteralScan | null; export declare function findInterpolatedExpressionEnd(source: string, start: number, end?: number): number; export type StringEscapeError = "legacyUnicode" | "hex" | "unicodeForm" | "unicodeRange" | "unicodeSurrogate" | "unknown"; export interface StringEscapeScan { readonly end: number; readonly value: string | null; readonly error: StringEscapeError | null; } /** * Scans one non-raw string escape beginning at `start`. Keeping this owner in * the shared string scanner makes delimiter discovery, Lexer diagnostics, * f-string decoding, and formatter quote normalization agree on the exact * escape boundary — especially for `\\u{...}`, whose braces are text rather * than interpolation syntax. */ export declare function scanStringEscape(source: string, start: number, endLimit?: number): StringEscapeScan; //# sourceMappingURL=interpolated-string.d.ts.map