export type LogLevel = "debug" | "info" | "warn" | "error"; export type TokenHeaderMode = "bearer" | "private-token"; export type McpTransportMode = "stdio" | "http"; export type AliasMap = Readonly>; export type ToolProfile = "full" | "readonly" | "core" | "mr-review" | "ci-triage" | "delivery" | "release" | "governance" | "maintainer-write"; export interface AppConfig { readonly gitlabBaseUrl: string; readonly gitlabToken: string; readonly tokenHeaderMode: TokenHeaderMode; readonly toolProfile: ToolProfile; readonly enabledTools: readonly string[]; readonly disabledTools: readonly string[]; readonly exposeDisabledWriteTools: boolean; readonly mcpTransport: McpTransportMode; readonly mcpHttpHost: string; readonly mcpHttpPort: number; readonly mcpHttpPath: string; readonly mcpHttpAllowedOrigins: readonly string[]; readonly mcpHttpAllowedHosts: readonly string[]; readonly mcpHttpAuthToken?: string; readonly mcpHttpAllowNonLocalhost: boolean; readonly enableWriteTools: boolean; readonly enableDestructiveTools: boolean; readonly enableDryRun: boolean; readonly projectAliases: AliasMap; readonly groupAliases: AliasMap; readonly projectAllowlist: readonly string[]; readonly groupAllowlist: readonly string[]; readonly projectDenylist: readonly string[]; readonly maxFileSizeBytes: number; readonly maxDiffSizeBytes: number; readonly maxApiResponseBytes: number; readonly httpTimeoutMs: number; readonly gitlabUserAgent: string; readonly logLevel: LogLevel; readonly auditLogPath?: string; readonly exposeSecretVariableValues: boolean; } export declare function loadConfig(env?: NodeJS.ProcessEnv): AppConfig;