export declare const CONFIG_FILENAME = ".agentlint.json"; export interface AgentlintConfig { projectId: string; orgSlug: string | null; repoOwner: string | null; repoName: string | null; prodBranch: string; version: number; } export type ReadFileFn = (path: string) => Promise; export type ExistsFn = (path: string) => Promise; export interface LoadConfigOptions { readFileFn?: ReadFileFn; existsFn?: ExistsFn; /** Override the filesystem root used as a walk-up stop condition. */ rootStop?: string; } /** * Walk up from `startDir` looking for `.agentlint.json`. Returns the * resolved absolute path of the first match, or null when none is found. * * Stops at the filesystem root (`dirname(x) === x`) or at `rootStop` if * provided. Never throws. */ export declare function findConfigFile(startDir: string, opts?: LoadConfigOptions): Promise; /** * Load and validate `.agentlint.json` starting from `startDir`. Returns null * when the file isn't found, isn't valid JSON, or is missing the required * `projectId` field. */ export declare function loadConfig(startDir: string, opts?: LoadConfigOptions): Promise; /** * Validate the parsed JSON shape into an `AgentlintConfig`. Missing optional * fields are normalized to defaults; an absent or non-string `projectId` * fails validation by returning null. */ export declare function normalizeConfig(parsed: unknown): AgentlintConfig | null; /** * Serialize a config to the canonical on-disk JSON format: 2-space indent + * a trailing newline. Centralized so `init` and any future writers agree. */ export declare function stringifyConfig(config: AgentlintConfig): string; //# sourceMappingURL=config.d.ts.map