/** * Replace the interiors of shell strings, parameter expansions, command * substitutions, and arithmetic expansions with spaces so regex-based rules * can operate on "bare shell code" without false positives from characters * that appear inside `$'...'`, `'...'`, `"..."`, `` `...` ``, `${...}`, * `$(...)`, `$((...))`, or trailing `# ...` comments. * * The returned string has the same length as the input so that indices * produced by matches on the masked line are valid indices in the original. * * Only *interior* characters are masked to spaces; structural delimiters * (`'`, `"`, `` ` ``, `$`, `(`, `)`, `{`, `}`) are preserved so that rules * can still reason about whether a token sits next to a string boundary — * e.g. `"$var"]` still reports the `"` as the character preceding `]`. */ export declare function maskShellStrings(line: string): string; /** * Track heredoc start and end within a line-by-line scan. Returns the * delimiter recognised at this line, or `null` if this line does not start a * heredoc. The caller tracks state by flipping a boolean when * `heredocDelimiter` returns non-null, and clearing it when the delimiter * matches a subsequent line's trimmed content. */ export declare function heredocDelimiter(line: string): string | null;