import EventEmitter from 'node:events'; import type { Config } from '../config.abstract'; import type { PropertyException } from '../exceptions'; import type { ConfigSource, ConfigSourceException } from '../sources'; import type { Changes, RawValues } from '../types'; export declare class ReloadEvents extends EventEmitter { } export declare interface ReloadEvents { on(e: 'reload', fn: (source: ConfigSource, values: RawValues) => void): this; on(e: 'reload_failure', fn: (source: ConfigSource, err: ConfigSourceException) => void): this; on(e: 'merge', fn: (source: ConfigSource, changes: Changes) => void): this; on(e: 'update', fn: (section: Config, keys: string[]) => void): this; on(e: 'update_failure', fn: (section: Config, err: PropertyException) => void): this; emit(e: 'reload', source: ConfigSource, values: RawValues): boolean; emit(e: 'reload_failure', source: ConfigSource, err: ConfigSourceException): boolean; emit(e: 'merge', source: ConfigSource, changes: Changes): boolean; emit(e: 'update', section: Config, keys: string[]): boolean; emit(e: 'update_failure', section: Config, err: PropertyException): boolean; }