import { Injector } from '@angular/core'; import { ClassTransformOptions } from 'class-transformer'; import { List } from 'immutable'; import { BehaviorSubject } from 'rxjs'; import { Observable } from 'rxjs'; import { Subject } from 'rxjs'; import { ProviderActionEnum } from '../enums/provider-action.enum'; import { IFactoryModel } from '../interfaces/factory-model'; import { IModel } from '../interfaces/model'; import { IPaginationMeta } from '../interfaces/pagination-meta'; import { IProvider } from '../interfaces/provider'; import { IProviderActionActionModel } from '../interfaces/provider-action-action-model'; import { IProviderActionOptions } from '../interfaces/provider-action-options'; import { IProviderOptions } from '../interfaces/provider-options'; export declare class Provider implements IProvider { protected injector: Injector; protected factoryModel: IFactoryModel; filter?: any; autoload?: boolean; delay: number; providerName: string; items$: BehaviorSubject>; action$: Subject; create$: Subject; append$: Subject; update$: Subject; patch$: Subject; delete$: Subject; load$: Subject; loadAll$: Subject; actionIsActive$: BehaviorSubject; createIsActive$: BehaviorSubject; updateIsActive$: BehaviorSubject; deleteIsActive$: BehaviorSubject; loadIsActive$: BehaviorSubject; loadAllIsActive$: BehaviorSubject; paginationMeta$: BehaviorSubject; protected prevOptions?: IProviderActionOptions; protected destroy$: Subject; constructor(injector: Injector, factoryModel: IFactoryModel); instanceofFactoryModel(data: any): boolean; instanceofNestedFactoryModel(data: any): boolean; updateNestedFactoryModel(data: any): void; plainToClass(data: any, action: ProviderActionEnum, classTransformOptions?: ClassTransformOptions): TModel; classToPlain(model: TModel, action: ProviderActionEnum, classTransformOptions?: ClassTransformOptions): Object; classToClass(model: TModel, classTransformOptions?: ClassTransformOptions): TModel; action(key: string, data?: any, options?: TProviderActionOptions): Observable; save(model: TModel, options?: TProviderActionOptions): Observable; create(model: TModel, options?: TProviderActionOptions): Observable; append(model: TModel, options?: TProviderActionOptions): Observable; update(key: number | string, model: TModel, options?: TProviderActionOptions): Observable; patch(key: number | string, model: TModel, options?: TProviderActionOptions): Observable; delete(key: number | string, options?: TProviderActionOptions): Observable; load(key: number | string, options?: TProviderActionOptions): Observable; loadAll(filter?: any, options?: TProviderActionOptions): Observable; calcPaginationMetaByOptions(options: IProviderOptions): IPaginationMeta; calcPaginationMeta(newPaginationMeta: IPaginationMeta): IPaginationMeta; reloadAll(): void; checkFilterAndOptions(): void; setOptions(options: IProviderOptions): void; getOptions(): IProviderOptions; reconfigItems(items?: List): void; }