export type StaticKnowledgeState = number;
export namespace StaticKnowledgeState {
    let Initial: number;
    let Loading: number;
    let Loaded: number;
    let Failed: number;
}
export class StaticKnowledgeDatabase {
    /**
     *
     * @type {ObservedEnum<StaticKnowledgeState>}
     */
    __state: ObservedEnum<StaticKnowledgeState>;
    /**
     *
     * @type {StaticKnowledgeDataTableDescriptor[]}
     * @private
     */
    private __specs;
    /**
     *
     * @param {boolean} v
     */
    set validation_enabled(v: boolean);
    /**
     * Reset database, drop all table data
     */
    reset(): void;
    /**
     *
     * @param {string} id
     * @param {string} path
     * @param {StaticKnowledgeDataTable} table
     */
    add(id: string, path: string, table: StaticKnowledgeDataTable): void;
    /**
     * @template T
     * @param {string} id
     * @returns {StaticKnowledgeDataTableDescriptor|undefined}
     */
    getDescriptorById<T>(id: string): StaticKnowledgeDataTableDescriptor<any> | undefined;
    /**
     * @template T
     * @param {string} id
     * @returns {StaticKnowledgeDataTable<T>|undefined}
     */
    getTable<T>(id: string): StaticKnowledgeDataTable<T> | undefined;
    /**
     *
     * @returns {Promise}
     */
    promise(): Promise<any>;
    /**
     *
     * @param {ConcurrentExecutor} executor
     * @return {Promise}
     */
    validate(executor: ConcurrentExecutor): Promise<any>;
    /**
     *
     * @param {StaticKnowledgeDataTableDescriptor} descriptor
     * @param {AssetManager} assetManager
     * @param {ConcurrentExecutor} executor
     * @private
     */
    private __link_table;
    /**
     *
     * @param {AssetManager} am
     * @param {ConcurrentExecutor} executor
     * @returns {Promise}
     */
    link(am: AssetManager, executor: ConcurrentExecutor): Promise<any>;
    /**
     *
     * @private
     * @param {StaticKnowledgeDataTableDescriptor} descriptor
     * @param {AssetManager} assetManager
     * @param {ConcurrentExecutor} executor
     * @returns {Promise<StaticKnowledgeDataTable>}
     */
    private __load_table;
    /**
     * Load a table at runtime
     * @param {StaticKnowledgeDataTableDescriptor} descriptor
     * @param {AssetManager} assetManager
     * @param {ConcurrentExecutor} executor
     * @private
     */
    private __hot_load;
    /**
     *
     * @param {AssetManager} am
     * @param {ConcurrentExecutor} executor
     * @returns {Promise}
     */
    load(am: AssetManager, executor: ConcurrentExecutor): Promise<any>;
    isStaticKnowledgeDatabase: boolean;
    #private;
}
import ObservedEnum from "../../../core/model/ObservedEnum.js";
import { StaticKnowledgeDataTableDescriptor } from "./StaticKnowledgeDataTableDescriptor.js";
//# sourceMappingURL=StaticKnowledgeDatabase.d.ts.map