import { CallbackFunction, DcuplInitOptions } from './types'; import { AnalyticsController } from './analytics.controller'; export type DcuplUpdateScope = 'all' | 'global' | 'list' | 'list$'; export type DcuplUpdateTrigger = 'user' | 'loader'; export type DcuplUpdateType = 'data_change' | 'dcupl_destroyed' | 'dcupl_handle_datacontainer' | 'dcupl_initialized' | 'dcupl_updated_manually' | 'filter_many' | 'filter_one' | 'fn_aggregate' | 'fn_facets' | 'fn_groupBy' | 'fn_metadata' | 'fn_pivot' | 'fn_suggest' | 'list_created' | 'list_destroyed' | 'list_updated' | 'loader_added' | 'loader_config_fetched' | 'loader_data_fetched' | 'loader_models_fetched' | 'loader_scripts_fetched' | 'loader_processed' | 'loader_removed' | 'model_add' | 'query_apply_options' | 'query_apply' | 'query_execute' | 'query_get' | 'query_has' | 'query_many' | 'query_one' | 'query_remove' | 'query_reset' | 'result_updated' | 'view_add'; export type DcuplUpdateAction = 'update'; export type DcuplUpdateMessage = { key?: number; scope: DcuplUpdateScope; type: DcuplUpdateType; method?: string; args?: any; action?: DcuplUpdateAction; origin?: DcuplUpdateTrigger; start?: number; end?: number; duration?: number; originCdRefKey?: string; modelKey?: string; listKey?: string; result?: any; cloneResult?: boolean; connectMessage?: boolean; connectMessageResult?: boolean; }; export declare class ChangeDetector { key: string; protected parentCd: ChangeDetector | undefined; dcuplInitOptions: DcuplInitOptions; analyticsController: AnalyticsController; private off; private updateListener; private counter; constructor(); _init(options: { cdRefKey: string; dcuplInitOptions: DcuplInitOptions; parentCd?: ChangeDetector; analyticsController: AnalyticsController; }): void; getCounter(): number; increaseCounter(): void; destroy(): void; trigger(msg: DcuplUpdateMessage): void; on(cb: CallbackFunction): () => void; } export declare const clone: (obj: any, shouldClone: boolean) => any; export declare const trigger: (_msg: DcuplUpdateMessage) => any;