import { IndexStruct } from '../../../data-structs/dist/index.cjs';
import { BaseKVStore, BaseInMemoryKVStore, DataType } from '../../kv-store/dist/index.cjs';

declare const DEFAULT_PERSIST_PATH: string;
declare abstract class BaseIndexStore {
    abstract getIndexStructs(): Promise<IndexStruct[]>;
    abstract addIndexStruct(indexStruct: IndexStruct): Promise<void>;
    abstract deleteIndexStruct(key: string): Promise<void>;
    abstract getIndexStruct(structId?: string): Promise<IndexStruct | undefined>;
    persist(persistPath?: string): Promise<void>;
}
declare class KVIndexStore extends BaseIndexStore {
    private _kvStore;
    private _collection;
    constructor(kvStore: BaseKVStore, namespace?: string);
    addIndexStruct(indexStruct: IndexStruct): Promise<void>;
    deleteIndexStruct(key: string): Promise<void>;
    getIndexStruct(structId?: string): Promise<IndexStruct | undefined>;
    getIndexStructs(): Promise<IndexStruct[]>;
}
declare class SimpleIndexStore extends KVIndexStore {
    private kvStore;
    constructor(kvStore?: BaseInMemoryKVStore);
    static fromPersistDir(persistDir?: string): Promise<SimpleIndexStore>;
    static fromPersistPath(persistPath: string): Promise<SimpleIndexStore>;
    persist(persistPath?: string): Promise<void>;
    static fromDict(saveDict: DataType): SimpleIndexStore;
    toDict(): Record<string, unknown>;
}

export { BaseIndexStore, DEFAULT_PERSIST_PATH, KVIndexStore, SimpleIndexStore };
