import { PlatformServices } from '../platform/interfaces';
import { AgentKaiConfig, AppConfig, ConfigValidationError, IConfigService, MemoryConfig, ModelConfig } from '../types/config';
interface ConfigOptions {
    customConfigDir?: string;
}
/**
 * 配置服务，用于管理所有配置
 */
export declare abstract class BaseConfigService implements IConfigService {
    private config;
    private logger;
    abstract getPlatform(): PlatformServices;
    private fs;
    private env;
    private pathUtils;
    private platformInfo;
    private configDir;
    private dataDir;
    private userConfigDir;
    private configPath;
    private userConfigPath;
    private defaultConfig;
    private userConfig;
    private envConfig;
    private fullConfig;
    constructor(options?: ConfigOptions);
    ensureDirExists(): void;
    /**
     * 初始化配置服务
     */
    initialize(): Promise<boolean>;
    /**
     * 获取用户应用数据目录
     * @returns 用户应用数据目录路径
     */
    private getUserAppDataDir;
    /**
     * 查找所有配置文件
     * @returns 配置文件路径
     */
    findConfigFiles(): Promise<string[]>;
    /**
     * 加载默认配置
     */
    private loadDefaultConfig;
    /**
     * 加载环境变量配置
     */
    private loadEnvConfig;
    /**
     * 过滤掉对象中的undefined值
     */
    private filterUndefinedValues;
    /**
     * 将字符串解析为数字
     * @param value 要解析的字符串
     * @returns 解析后的数字，如果解析失败则返回undefined
     */
    private parseNumber;
    /**
     * 加载用户配置
     */
    loadUserConfig(): Promise<void>;
    /**
     * 创建默认用户配置
     * @returns 默认用户配置
     */
    createDefaultUserConfig(): Promise<{
        path: string;
        config: AgentKaiConfig;
    }>;
    /**
     * 合并所有配置
     */
    private mergeConfigs;
    /**
     * 验证配置
     * @param config 要验证的配置
     * @returns 验证结果，如果有错误则返回错误信息，否则返回true
     */
    validateConfig(config?: AgentKaiConfig): true | ConfigValidationError[];
    /**
     * 验证模型配置
     * @param config 模型配置
     * @returns 验证结果
     */
    validateModelConfig(config: ModelConfig | undefined): true | ConfigValidationError[];
    /**
     * 验证记忆配置
     * @param config 记忆配置
     * @returns 验证结果
     */
    validateMemoryConfig(config: MemoryConfig | undefined): true | ConfigValidationError[];
    /**
     * 验证应用配置
     * @param config 应用配置
     * @returns 验证结果
     */
    validateAppConfig(config: AppConfig | undefined): true | ConfigValidationError[];
    /**
     * 获取完整配置
     * @returns 完整配置
     */
    getFullConfig(options?: {
        allowEmpty: boolean;
    }): AgentKaiConfig;
    /**
     * 获取数据目录路径
     * @returns 数据目录路径
     */
    getDataDir(): string;
    /**
     * 获取用户配置目录路径
     * @returns 用户配置目录路径
     */
    getUserConfigDir(): string;
    /**
     * 获取用户配置文件路径
     * @returns 用户配置文件路径
     */
    getUserConfigPath(): string;
    /**
     * 获取模型配置
     * @returns 模型配置
     */
    getModelConfig(): ModelConfig;
    /**
     * 获取记忆配置
     * @returns 记忆配置
     */
    getMemoryConfig(): MemoryConfig;
    /**
     * 获取应用配置
     * @returns 应用配置
     */
    getAppConfig(): AppConfig;
    /**
     * 保存配置到用户配置文件
     * @param config 要保存的配置
     */
    saveConfig(config: AgentKaiConfig): Promise<boolean>;
    /**
     * 获取配置值
     * @param key 配置键
     * @param defaultValue 默认值
     * @returns 配置值或默认值
     */
    get<T>(key: string, defaultValue?: T): T | undefined;
    /**
     * 获取版本号
     * @returns 版本号或"未知"
     */
    getVersion(): string;
    /**
     * 获取AI助手名称
     * @returns AI助手名称
     */
    getAIName(): string;
    /**
     * 获取数据存储路径
     * @returns 数据存储路径
     */
    getDataPath(): string;
    /**
     * 获取AI模型配置
     * @returns AI模型配置对象
     */
    getAIModelConfig(): ModelConfig;
    /**
     * 设置配置值
     * @param key 配置键
     * @param value 配置值
     */
    set<T>(key: string, value: T): void;
    /**
     * 获取环境变量，封装process.env访问
     * @param key 环境变量名
     * @param defaultValue 默认值
     * @returns 环境变量值或默认值
     */
    getEnv(key: string, defaultValue?: string): string;
}
export {};
//# sourceMappingURL=config.d.ts.map