export interface GradleDependency { groupId: string | null; artifactId: string | null; version: string | null; configuration: string; source: string; /** * Full dotted catalog ref including catalog name prefix, e.g. "libs.foo.bar" or * "testLibs.x". The first dot-segment is the catalog name; the rest is the alias path. * scan.ts splits on the first "." to identify catalog and alias. */ catalogRef?: string; } export declare const PRODUCTION_CONFIGURATIONS: readonly ["implementation", "api", "compileOnly", "runtimeOnly"]; export declare const NON_PRODUCTION_CONFIGURATIONS: readonly ["testImplementation", "testCompileOnly", "testRuntimeOnly", "kapt", "ksp", "annotationProcessor"]; /** * Returns true if the Gradle configuration name belongs to a test scope. * * Rule: a configuration is test-scope if its name starts with "test" (case-sensitive lowercase) * or if the camelCase word "Test" appears after a lowercase letter * (e.g. androidTestImplementation, commonTestImplementation, iosTestImplementation, kaptTest). * * Examples that return true: * testImplementation, androidTestImplementation, commonTestImplementation, * iosTestImplementation, kaptTest, jvmTestImplementation, testFixturesImplementation * * Examples that return false: * implementation, api, kapt, ksp, annotationProcessor, classpath, plugin-dsl, * compileOnly, runtimeOnly * * Note: testFixturesImplementation is classified as test-scope by this rule. * * Note: The Gradle dependency parser (CONFIG_PATTERN) only recognizes a fixed list of * configurations. Source-set variants like commonTestImplementation are not extracted * by the parser today, so this rule is broader than what the scanner currently emits. * The audit tool uses this function — not PRODUCTION_CONFIGURATIONS — as the production gate. */ export declare function isTestConfiguration(config: string): boolean; export declare function parseGradleDependencies(content: string, source?: string): GradleDependency[];