import { ItemService } from '../catalog'; import { ModelParser } from '../model-parser'; import { DataContainer, DcuplInitOptions, ModelDefinition, ListItem, RawItem, ViewDefinition, ChangeDetector, DcuplGlobalItemOptions, CallbackFunction, DcuplQueryGroup, DcuplQuery, DcuplGlobalQueryOptions, DataOptions, DcuplGlobalManyItemOptions, AnalyticsController, CustomOperatorFn, QueryManager, PivotResponse, DcuplGlobalPivotOptions, DcuplGlobalAggregateOptions, Aggregation, DcuplGlobalSuggestionOptions, Suggestion, DcuplGlobalGroupByOptions, GroupByResponse, DcuplGlobalFacetOptions, FilterItemEntry, ListMetadata, DcuplGlobalMetadataOptions, CacheController, ScriptController } from '@dcupl/common'; import { ListsController } from './dcupl-list-controller'; import { QualityController } from '../quality/quality.controller'; export declare class DcuplApi { protected cdRef: ChangeDetector; protected analyticsController: AnalyticsController; protected scriptController: ScriptController; protected qualityController: QualityController; protected modelParser: ModelParser; protected globalItemService: ItemService; cacheCtrl: CacheController; protected queryManager: QueryManager; private _loaders; private rootQueryBuilder; private _defaultInitOptions; initOptions: DcuplInitOptions; lists: ListsController; private busy; private updateQueue; constructor(options?: DcuplInitOptions); models: { get: (modelKey: ModelNames) => ModelDefinition | undefined; set: (model: ModelDefinition) => void; update: (model: ModelDefinition) => void; remove: (modelKey: ModelNames) => void; keys: () => string[]; }; views: { get: (viewKey: string) => ViewDefinition | undefined; keys: (options?: { modelKey: string; }) => string[]; set: (view: ViewDefinition) => void; }; data: { update: (data: RawItem[], options: DataOptions) => void; upsert: (data: RawItem[], options: DataOptions) => void; set: (data: RawItem[], options: DataOptions) => void; remove: (data: RawItem[], options: DataOptions) => void; reset: (options: { model: string; }) => void; apply: (container: DataContainer) => void; }; loaders: { add: (loader: any, key?: string) => void; remove: (key: string) => void; get: (key: string) => any; }; scripts: { set: (key: string, script: string) => void; remove: (key: string) => void; get: (key: string) => void; keys: () => string[]; execute: (key: string, options?: any) => any; executeAsync: (key: string, options?: any) => any; }; fn: { pivot: (options: DcuplGlobalPivotOptions) => PivotResponse; aggregate: (options: DcuplGlobalAggregateOptions) => Aggregation; suggest: (options: DcuplGlobalSuggestionOptions) => Suggestion[]; groupBy: (options: DcuplGlobalGroupByOptions) => GroupByResponse; facets: (options: DcuplGlobalFacetOptions) => FilterItemEntry[]; metadata: (options: DcuplGlobalMetadataOptions) => ListMetadata; }; private _pivot; private _aggregate; private _suggest; private _groupBy; private _facets; private _metadata; protected registerContainer(container: DataContainer): void; protected updateRegisteredContainer(container: DataContainer): void; protected removeRegisteredContainer(container: DataContainer): void; private getFnList; private updateFnLists; query: { one: (options: DcuplGlobalItemOptions) => ItemType | null; many: (options: DcuplGlobalManyItemOptions) => ItemType[]; execute: (options: DcuplGlobalQueryOptions) => ItemType[]; generate: (modelKey: string, query: DcuplQueryGroup | DcuplQuery | DcuplQuery[] | DcuplQueryGroup[]) => DcuplGlobalQueryOptions; registerCustomOperator: (operator: string, fn: CustomOperatorFn) => void; }; on(cb: CallbackFunction): () => void; init(): Promise; update(): Promise; destroy(): void; private getItem; private _getManyItems; private executeQuery; private addLoader; private removeLoader; /** * UPDATE QUEUE */ private performUpdate; private processQueue; }