import { OnDestroy } from "@angular/core";
import { BehaviorSubject, Observable } from "rxjs";
import { LoggerService } from "@nova-ui/bits";
import { IRegistryAddOptions } from "./types";
type IRegistryMap<T> = Record<string, T>;
export declare abstract class RegistryService<T = object> implements OnDestroy {
    private logger;
    private className?;
    protected state$: BehaviorSubject<IRegistryMap<T>>;
    stateChanged$: Observable<T[]>;
    private _stateVersion;
    get stateVersion(): string;
    private _isEmpty;
    get isEmpty(): boolean;
    protected constructor(logger: LoggerService, className?: string | undefined);
    addItems(items: T[], options?: IRegistryAddOptions): void;
    getItem(id: string): T | undefined;
    getItems(): T[];
    reset(): void;
    ngOnDestroy(): void;
    protected abstract getItemKey(item: T): string;
    private updateStateFlags;
}
export {};
