import Constitution from './core/constitution/Constitution.js';
import ConstitutionValidator from './core/constitution/ConstitutionValidator.js';
import Gateway from './core/gateway/Gateway.js';
import PermissionManager from './core/permission/PermissionManager.js';
import AuditLogger from './infrastructure/audit/AuditLogger.js';
import AuditStore from './infrastructure/audit/AuditStore.js';
import ConfigLoader from './infrastructure/config/ConfigLoader.js';
import DatabaseConnection from './infrastructure/database/DatabaseConnection.js';
import Logger from './infrastructure/logging/Logger.js';
import { SkillHooks } from './service/skills/SkillHooks.js';
/** Bootstrap - 应用程序启动器 */
/** Bootstrap 初始化选项 */
interface BootstrapOptions {
    configPath?: string;
    dbPath?: string;
    logLevel?: string;
    [key: string]: unknown;
}
/** Bootstrap 管理的组件集合 */
interface BootstrapComponents {
    config?: typeof ConfigLoader;
    logger?: ReturnType<typeof Logger.getInstance>;
    db?: InstanceType<typeof DatabaseConnection>;
    constitution?: InstanceType<typeof Constitution>;
    constitutionValidator?: InstanceType<typeof ConstitutionValidator>;
    permissionManager?: InstanceType<typeof PermissionManager>;
    auditStore?: InstanceType<typeof AuditStore>;
    auditLogger?: InstanceType<typeof AuditLogger>;
    gateway?: InstanceType<typeof Gateway>;
    skillHooks?: InstanceType<typeof SkillHooks>;
    [key: string]: unknown;
}
export declare class Bootstrap {
    components: BootstrapComponents;
    options: BootstrapOptions;
    constructor(options?: BootstrapOptions);
    /**
     * 配置 PathGuard 路径安全守卫
     * 必须在任何文件写操作前调用
     * @param projectRoot 用户项目的绝对路径
     * @param [knowledgeBaseDir] 知识库目录名（如 'AutoSnippet'）
     */
    static configurePathGuard(projectRoot: string, knowledgeBaseDir?: string): void;
    /** 初始化应用程序 */
    initialize(): Promise<BootstrapComponents>;
    /** 加载 .env 文件（dotenv），不覆盖已有环境变量 */
    loadDotEnv(): Promise<void>;
    /** 加载配置 */
    loadConfig(): Promise<void>;
    /** 初始化日志系统 */
    initializeLogger(): Promise<void>;
    /** 初始化数据库 */
    initializeDatabase(): Promise<void>;
    /** 加载宪法 */
    loadConstitution(): Promise<void>;
    /** 初始化核心组件 */
    initializeCoreComponents(): Promise<void>;
    /** 初始化网关 */
    initializeGateway(): Promise<void>;
    /** 关闭应用程序 */
    shutdown(): Promise<void>;
    /** 获取组件 */
    getComponent(name: string): unknown;
    /** 获取所有组件 */
    getAllComponents(): BootstrapComponents;
}
export default Bootstrap;
