import { InjectionToken, OnDestroy } from '@angular/core';
import { type Maybe } from '@dereekb/util';
import { StorageAccessor } from '@dereekb/dbx-core';
import { Observable } from 'rxjs';
import { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';
import * as i0 from "@angular/core";
/**
 * Token that corresponds to a StorageAccessor<DbxModelViewTrackerEventSet> that is used by DbxModelViewTrackerStorage.
 */
export declare const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN: InjectionToken<unknown>;
/**
 * Used for managing DbxModelViewTrackerEvent storage.
 */
export declare class DbxModelViewTrackerStorage implements OnDestroy {
    static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = "dbxModelViewTrackerEvents";
    static readonly DEFAULT_MAX_EVENTS = 100;
    readonly storageAccessor: StorageAccessor<DbxModelViewTrackerEventSet>;
    private readonly _newEvent;
    readonly newEvent$: Observable<DbxModelViewTrackerEvent>;
    ngOnDestroy(): void;
    protected get storageKey(): string;
    protected get maxEventsToKeep(): number;
    addTrackerEvent(event: DbxModelViewTrackerEvent): Observable<void>;
    getAllEvents(folder?: Maybe<string>): Observable<DbxModelViewTrackerEvent[]>;
    getEventSet(folder?: Maybe<string>): Observable<DbxModelViewTrackerEventSet>;
    private _getEventSetForStorageKey;
    getStorageKeyForFolder(folder?: Maybe<string>): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxModelViewTrackerStorage, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DbxModelViewTrackerStorage>;
}
