/**
 * Configuration Access API
 *
 * Main interface for loading, accessing, and modifying configuration.
 * Implements the precedence hierarchy: CLI > Environment > File > Defaults
 */
import type { Configuration, LoadConfigOptions, ConfigPath, ConfigPathTypes, ConfigSource, TrackedConfiguration, TrackedValue } from './types.js';
/**
 * Loads configuration with full precedence chain
 *
 * Precedence (highest to lowest):
 * 1. CLI overrides (if provided)
 * 2. Environment variables
 * 3. Config file
 * 4. Built-in defaults
 *
 * @param options - Loading options
 * @returns Complete configuration
 */
export declare function loadConfig(options?: LoadConfigOptions): Configuration;
/**
 * Gets the current configuration, loading if necessary
 */
export declare function getConfig(): Configuration;
/**
 * Gets the tracked configuration with source attribution
 */
export declare function getTrackedConfig(): TrackedConfiguration;
/**
 * Reloads configuration from all sources
 */
export declare function reloadConfig(options?: LoadConfigOptions): Configuration;
/**
 * Clears the configuration cache
 */
export declare function clearConfigCache(): void;
/**
 * Gets a configuration value by path
 *
 * @param path - Dot-notation path to the value
 * @returns The configuration value
 *
 * @example
 * getValue('actor') // 'my-agent'
 * getValue('sync.autoExport') // true
 * getValue('identity.mode') // 'soft'
 */
export declare function getValue<P extends ConfigPath>(path: P): ConfigPathTypes[P];
/**
 * Gets a configuration value from a config object by path
 */
export declare function getValueFromConfig<P extends ConfigPath>(config: Configuration, path: P): ConfigPathTypes[P];
/**
 * Gets the source of a configuration value
 */
export declare function getValueSource(path: ConfigPath): ConfigSource;
/**
 * Gets a value with its source
 */
export declare function getValueWithSource<P extends ConfigPath>(path: P): TrackedValue<ConfigPathTypes[P]>;
/**
 * Sets a configuration value in the config file
 *
 * @param path - Dot-notation path to the value
 * @param value - New value to set
 */
export declare function setValue<P extends ConfigPath>(path: P, value: ConfigPathTypes[P]): void;
/**
 * Unsets a configuration value in the config file
 * Note: This removes the value from the file, falling back to defaults
 */
export declare function unsetValue(path: ConfigPath): void;
/**
 * Gets the active configuration file path
 */
export declare function getConfigPath(): string | undefined;
/**
 * Checks if the configuration file exists
 */
export declare function configFileExists(): boolean;
/**
 * Saves the entire configuration to file
 */
export declare function saveConfig(config: Configuration, filePath?: string): void;
export { type Configuration, type PartialConfiguration, type ConfigPath, type ConfigSource, type TrackedConfiguration, type LoadConfigOptions, } from './types.js';
//# sourceMappingURL=config.d.ts.map