/// <reference types="node" resolution-mode="require"/>
import { ConfigKey } from "../constants/config.mjs";
export declare class ConfigError extends Error {
}
/**
 * Cache shared app configuration from files in memory
 */
export declare class EnvironmentConfig {
    private readonly fileBuffers;
    private readonly jsonData;
    private readonly environment;
    constructor(dotEnvPath?: string);
    get isEnvironmentLocal(): boolean;
    get isEnvironmentProd(): boolean;
    get isEnvironmentContainerized(): boolean;
    getString: (key: ConfigKey) => string;
    getStringOrNull: (key: ConfigKey) => string | null;
    getNumber: (key: ConfigKey) => number;
    getNumberOrNull: (key: ConfigKey) => number | null;
    getBool: (key: ConfigKey) => boolean;
    getJson: <T>(key: ConfigKey) => T;
    getFileBuffer: (key: ConfigKey) => Promise<Buffer>;
    private getConfigValue;
    private getConfigValueOrNull;
    private parseNumberOrThrow;
    private parseBooleanOrThrow;
}
