import { LogLevel } from '../../utils';
import type { LangType } from '../../library/locale/types';
import type { ManagerLifecycle, StartOptions } from '../types';
/**
 * 初始化上下文
 */
export interface InitializationContext {
    /**
     * 已加载的配置
     */
    config: Record<string, unknown>;
    /**
     * 初始化进度（0-100）
     */
    progress: number;
    /**
     * 是否准备就绪
     */
    isReady: boolean;
    /**
     * 初始化耗时（毫秒）
     */
    duration: number;
}
/**
 * 配置加载策略
 */
export interface ConfigStrategy {
    /**
     * 加载关键配置
     * 这些配置必须在应用渲染前加载完成
     */
    loadCriticalConfig?: () => Promise<Record<string, unknown>>;
    /**
     * 加载非关键配置
     * 这些配置可以在应用渲染后异步加载
     */
    loadNonCriticalConfig?: () => Promise<Record<string, unknown>>;
    /**
     * 配置降级方案
     * 当配置加载失败时使用的默认配置
     */
    fallbackConfig?: Record<string, unknown>;
    /**
     * 配置超时时间（毫秒）
     * 默认 5000ms，超时后使用降级配置
     */
    configTimeout?: number;
    /**
     * 配置版本号（用于缓存失效）
     */
    configVersion?: string;
    /**
     * 配置加载完成回调
     */
    onConfigLoaded?: (config: Record<string, unknown>) => void;
    /**
     * 是否启用缓存
     * @default true
     */
    enableCache?: boolean;
    /**
     * 缓存过期时间（毫秒）
     * @default 5 * 60 * 1000 (5分钟)
     */
    cacheTTL?: number;
    /**
     * 重试次数
     * @default 3
     */
    retryCount?: number;
    /**
     * 重试延迟（毫秒）
     * @default 1000
     */
    retryDelay?: number;
}
/**
 * 初始化选项
 */
export interface InitializationOptions {
    /**
     * 日志级别
     */
    loggerLevel?: LogLevel;
    /**
     * 国际化配置
     */
    locale?: Record<LangType, Record<string, unknown>>;
    /**
     * 生命周期钩子
     */
    lifecycle?: ManagerLifecycle;
    /**
     * 配置加载策略
     */
    configStrategy?: ConfigStrategy;
}
/**
 * 进度回调函数
 */
export type ProgressCallback = (progress: number, step?: string) => void;
/**
 * 初始化方法
 *
 * 这是核心的初始化逻辑，可被启动页或直接调用
 *
 * @param options - 初始化选项
 * @param onProgress - 进度回调函数（可选）
 * @returns Promise<InitializationContext>
 *
 * @example
 * ```typescript
 * const context = await initialization({
 *   loggerLevel: LogLevel.INFO,
 *   lifecycle: {
 *     initialization: async () => {
 *       // 初始化逻辑
 *     },
 *   },
 * }, (progress, step) => {
 *   console.log(`进度: ${progress}%, 步骤: ${step}`);
 * });
 * ```
 */
export declare function initialization(options: StartOptions, onProgress?: ProgressCallback): Promise<InitializationContext>;
//# sourceMappingURL=initialization.d.ts.map