import { internal } from '@launchdarkly/js-sdk-common';
import { DataKind } from '../api/interfaces';
import { LDFeatureStore, LDFeatureStoreDataStorage, LDFeatureStoreItem, LDFeatureStoreKindData, LDKeyedFeatureStoreItem, LDTransactionalFeatureStore } from '../api/subsystems';
/**
 * This decorator can take a non-transactional {@link LDFeatureStore} implementation
 * and adapt it to be transactional through the use of an in-memory store acting as
 * cache.
 */
export default class TransactionalFeatureStore implements LDTransactionalFeatureStore {
    private readonly _nonTransPersistenceStore;
    private _memoryStore;
    private _activeStore;
    constructor(_nonTransPersistenceStore: LDFeatureStore);
    get(kind: DataKind, key: string, callback: (res: LDFeatureStoreItem | null) => void): void;
    all(kind: DataKind, callback: (res: LDFeatureStoreKindData) => void): void;
    init(allData: LDFeatureStoreDataStorage, callback: () => void): void;
    delete(kind: DataKind, key: string, version: number, callback: () => void): void;
    upsert(kind: DataKind, data: LDKeyedFeatureStoreItem, callback: () => void): void;
    applyChanges(basis: boolean, data: LDFeatureStoreDataStorage, callback: () => void, initMetadata?: internal.InitMetadata, selector?: string): void;
    initialized(callback: (isInitialized: boolean) => void): void;
    close(): void;
    getDescription(): string;
}
//# sourceMappingURL=TransactionalFeatureStore.d.ts.map