/**
 * AIChatRTCLocal.core.ts — AIChatRTCLocal 主类
 *
 * 提供 createSession() 入口，管理共享单例和会话生命周期。
 * backend 类在 AIChatRTCLocal.backends.ts，会话类在 AIChatRTCLocal.session.ts。
 */
import { AGENT_STATE } from './AIChatRTC';
import LocalRTCSession from './AIChatRTCLocal.session';
type CoreAny = Record<string, any>;
declare class AIChatRTCLocal {
    static AGENT_STATE: {
        UNKNOWN: number;
        LISTENING: number;
        THINKING: number;
        SPEAKING: number;
        INTERRUPTED: number;
        FINISHED: number;
    };
    static AGENT_STATE_LABELS: {
        [AGENT_STATE.UNKNOWN]: string;
        [AGENT_STATE.LISTENING]: string;
        [AGENT_STATE.THINKING]: string;
        [AGENT_STATE.SPEAKING]: string;
        [AGENT_STATE.INTERRUPTED]: string;
        [AGENT_STATE.FINISHED]: string;
    };
    static LOCAL_NEURAL_ASR_PRESETS: Record<string, {
        [x: string]: any;
    }>;
    static DEFAULT_LOCAL_NEURAL_PRESET: string;
    static LOCAL_WHISPER_ASR_PRESETS: Record<string, {
        [x: string]: any;
    }>;
    static DEFAULT_WHISPER_PRESET: string;
    sdk: CoreAny;
    _loadPromise: Promise<void> | null;
    _assetDBPromise: Promise<unknown> | null;
    _assetBlobUrls: Map<string, string>;
    [key: string]: any;
    /**
     * @param {Object} sdk  - KeepworkSDK instance
     * @param {Object} [options]
     * @param {string} [options.ortUrl]          - Override ORT standalone script CDN URL
     * @param {string} [options.onnxWASMBasePath]  - Override ONNX WASM CDN base
     * @param {string} [options.vadBundleUrl]      - Override VAD bundle CDN URL
     * @param {string} [options.vadModelURL]       - Override Silero model URL
     * @param {string} [options.vadWorkletURL]     - Override VAD worklet URL
     * @param {boolean} [options.cacheBinaryAssetsToIndexedDB=false] - Cache ONNX/WASM blobs in IndexedDB
     * @param {string} [options.assetCacheNamespace] - Cache namespace/version for invalidation
     */
    constructor(sdk: unknown, options?: CoreAny);
    /**
     * Preload the Silero VAD library. Called automatically by session.start(),
     * but can be invoked earlier for faster startup.
     * If loading fails, sessions will fall back to energy-based VAD.
     * @returns {Promise<void>}
     */
    loadSDK(): Promise<void>;
    /**
     * Load ORT + VAD scripts sequentially.
     * ORT must be loaded first (window.ort) because vad-web's bundle.min.js
     * declares onnxruntime-web as an external and reads window.ort at init time.
     */
    _loadScripts(): Promise<void>;
    /** Load a single script tag and return a promise. */
    _loadScript(url: string): Promise<void>;
    _resolveBinaryAssetUrls(): Promise<{
        modelURL: any;
        wasmPaths: any;
    }>;
    _getOrCacheBinaryAssetURL(remoteUrl: string, fileName: string): Promise<string | null | undefined>;
    _rememberBlobURL(cacheKey: string, blob: Blob): string;
    _getAssetDB(): Promise<unknown>;
    _withAssetStore(mode: IDBTransactionMode, callback: (store: CoreAny, resolve: (v?: unknown) => void, reject: (e?: unknown) => void) => void): Promise<unknown>;
    _readCachedBinaryAsset(cacheKey: string): Promise<unknown>;
    _writeCachedBinaryAsset(cacheKey: string, record: CoreAny): Promise<unknown>;
    /**
     * Create a new local voice chat session.
     * @param {Object} config - Session configuration (compatible with AIChatRTC.createSession)
     * @param {Object} [config.agentConfig] - Agent config (WelcomeMessage, SystemMessages, etc.)
     * @param {Object} [config.config] - Config block (LLMConfig, ASRConfig, TTSConfig)
     * @param {string} [config.workspace] - SandboxToolEnv workspace name
     * @param {string[]} [config.enabledToolCategories=['fileOps','agent']] - Tool categories for SandboxToolEnv
     * @param {Array} [config.tools] - Additional custom tool definitions (OpenAI format)
     * @param {Object} [config.toolProxy] - Tool proxy config for AgentRouter
     * @returns {LocalRTCSession}
     */
    createSession(config?: {}): LocalRTCSession;
}
export default AIChatRTCLocal;
export { AIChatRTCLocal };
//# sourceMappingURL=AIChatRTCLocal.core.d.ts.map