import { Observable } from 'rxjs'; import { QueryEntity } from '../../queryEntity'; import { EntityState, getEntityType, getIDType, OrArray } from '../../types'; import { EntityCollectionPlugin } from '../entityCollectionPlugin'; import { DirtyCheckComparator, DirtyCheckPlugin, DirtyCheckResetParams } from './dirtyCheckPlugin'; export declare type DirtyCheckCollectionParams = { comparator?: DirtyCheckComparator>; entityIds?: OrArray>; }; export declare class EntityDirtyCheckPlugin = DirtyCheckPlugin> extends EntityCollectionPlugin { protected query: QueryEntity; private readonly params; private _someDirty; someDirty$: Observable; constructor(query: QueryEntity, params?: DirtyCheckCollectionParams); setHead(ids?: OrArray>): this; hasHead(id: getIDType): boolean; reset(ids?: OrArray>, params?: DirtyCheckResetParams): void; isDirty(id: getIDType): Observable; isDirty(id: getIDType, asObservable: true): Observable; isDirty(id: getIDType, asObservable: false): boolean; someDirty(): boolean; isPathDirty(id: getIDType, path: string): boolean; destroy(ids?: OrArray>): void; protected instantiatePlugin(id: getIDType): P; private checkSomeDirty; }