/** * Environment variable detection from repository files. * * Pure detection module — scans .env files, docker-compose.yml, * Spring config files, and infers framework-specific env vars. * * TODO: Extract into a separate detection task within analyze-repo * so env detection runs as an independent step (see PR #630 discussion). */ import { z } from 'zod'; export declare const detectedEnvVarSchema: z.ZodObject<{ name: z.ZodString; classification: z.ZodEnum<["secret", "database", "config"]>; source: z.ZodString; required: z.ZodBoolean; defaultValue: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; source: string; required: boolean; classification: "config" | "database" | "secret"; defaultValue?: string | undefined; }, { name: string; source: string; required: boolean; classification: "config" | "database" | "secret"; defaultValue?: string | undefined; }>; export type DetectedEnvVar = z.infer; /** * Classify an environment variable name as secret, database, or config. * * - SECRET: contains PASSWORD, TOKEN, KEY, SECRET, CREDENTIAL, or is a DATABASE_URL/DSN/URI * - DATABASE: starts with DB_, REDIS_, MONGO_, MYSQL_, PG_, POSTGRES_, or MSSQL_ * - CONFIG: everything else */ export declare function classifyEnvVar(name: string): 'secret' | 'database' | 'config'; /** * Partition env vars into config, database, and secret name lists in a single pass. * Database vars (DB_HOST, DB_PORT, etc.) are non-secret connection details and * belong in ConfigMaps, not Secrets. */ export declare function partitionEnvVarNames(vars: DetectedEnvVar[]): { configNames: string[]; databaseNames: string[]; secretNames: string[]; }; /** * Parse KEY=value lines from .env-style files. * Skips comments and blank lines. * A var is required if it has no default (no value after =, or no = at all). */ export declare function detectEnvVarsFromEnvFile(content: string, source: string): DetectedEnvVar[]; /** * Parse environment variables from docker-compose.yml content. * Handles both list format (`- VAR=val`) and map format (`VAR: val`). */ export declare function detectEnvVarsFromDockerCompose(content: string, source?: string): { vars: DetectedEnvVar[]; warning?: string; }; /** * Extract ${VAR_NAME:default} placeholders from Spring application.properties/yml content. * Only captures env-var-shaped names (uppercase with underscores); rejects dotted * Spring property references like ${spring.profiles.active}. */ export declare function detectEnvVarsFromSpringConfig(content: string, source?: string): DetectedEnvVar[]; /** * Infer common framework environment variables from language/framework. */ export declare function inferFrameworkEnvVars(language: string, framework?: string): DetectedEnvVar[]; /** * Deduplicate env vars by name. * Prefers explicit sources over 'framework-inferred'. * Keeps the first default value encountered. */ export declare function deduplicateEnvVars(vars: DetectedEnvVar[]): DetectedEnvVar[]; //# sourceMappingURL=env-detector.d.ts.map