/** * Gradle source with comments removed and strings kept verbatim, so `/*` in a glob such as `pickFirst '**\/*.so'` * or `//` in a URL is text, not a comment. Block comments become the newlines they spanned, so line-based matching * keeps working. */ export declare function stripGradleComments(text: string): string; /** Gradle source with comments blanked to spaces (same length and line breaks, so indexes still line up). */ export declare function blankComments(text: string): string; /** * Gradle source with comments and string contents blanked (same length, line breaks kept): only code is left to * match tokens against, so `"targetSdk 33"` in a string or a comment is never read as an assignment. Each string * literal keeps its first and last character so `x = "…"` still shows a value is there. */ export declare function maskStrings(text: string): string; /** * Like `maskStrings`, but string literals for which `keep(literal)` is true stay verbatim (`literal` includes its * quotes). Comments are blanked. Same length and line breaks as `text`. */ export declare function keepStrings(text: string, keep: (literal: string) => boolean): string; /** * Index of the `}` that closes the `{` at `open`, counting braces only in code (not inside strings or comments); * -1 when it is never closed. */ export declare function closingBrace(text: string, open: number): number; /** `text` without every block opened by `opener` (a regex ending at `{`), braces matched with `closingBrace`. */ export declare function removeBlocks(text: string, opener: RegExp): string; /** The contents of the first block opened by `opener` (a regex ending at `{`), or undefined. */ export declare function blockContents(text: string, opener: RegExp): string | undefined;