export type EnvCheck> = { /** Vars this check is about: used to attribute the error, and to SKIP the * check when any of them already failed validation ("both missing" must not * also report as "both equal"). */ vars: readonly string[]; /** Return false (or throw) to fail. Receives the cleaned, coerced values. */ check: (env: T) => boolean; /** Why it failed, phrased as an instruction to the operator. */ message: string; }; /** At most one of `vars` may be set. */ export declare const mutuallyExclusive: >(vars: readonly string[], message?: string) => EnvCheck; /** All of `vars` must hold distinct values (e.g. two roles that cannot be the * same role — one needs BYPASSRLS, the other must be subject to RLS). */ export declare const distinct: >(vars: readonly string[], message?: string) => EnvCheck; /** When `flag` is truthy, every var in `vars` must be set — a feature flag that * turns other vars into requirements. */ export declare const requiredWhen: >(flag: string, vars: readonly string[], message?: string) => EnvCheck; /** Run the checks whose vars all validated; return one message per failure. */ export declare const runChecks: (checks: readonly EnvCheck[], cleaned: T, failedVars: ReadonlySet) => { vars: readonly string[]; message: string; }[];