import { Config, Effect, Redacted } from "effect"; import { LogLevel } from "../logging/types.js"; /** Parses the strings "true"/"false" (case-insensitive) the way `DOCKERIZED` used to. */ export declare const stringBoolean: (value: string) => boolean; /** * The environment variables every mitools consumer shares. Spread these into * your own `Config.all({...baseConfigFields, MY_KEY: Config.string("MY_KEY")})`. * * The library's services read what they need themselves (`Sqlite.layerConfig`, * `Logger.layerConfig`, `Pushover.layerConfig`), so this exists for consumers * that want one typed config object at startup. */ export declare const baseConfigFields: { LOG_LEVEL: Config.Config; PUSHOVER_USER: Config.Config; PUSHOVER_TOKEN: Config.Config | undefined>; DOCKERIZED: Config.Config; DB_NAME: Config.Config; }; export declare const baseConfig: Config.Config<{ LOG_LEVEL: LogLevel; PUSHOVER_USER: string | undefined; PUSHOVER_TOKEN: Redacted.Redacted | undefined; DOCKERIZED: boolean; DB_NAME: string; }>; export type BaseConfig = Config.Success; export declare function isSensitiveKey(key: string): boolean; /** A copy of `config` with sensitive keys (by name) and `Redacted` values replaced by "***". */ export declare function redactConfig(config: T, extraPrivateConfigKeys?: (string & keyof T)[]): Record; /** Logs the config at info level with sensitive keys redacted. */ export declare function logConfig(config: T, extraPrivateConfigKeys?: (string & keyof T)[]): Effect.Effect;