import { Disposable, IComponent, IDisposable, IItemsProvider, ISerializationInfoArray } from '@devexpress/analytics-core/analytics-utils'; import { IExpressionOptions } from '@devexpress/analytics-core/analytics-widgets'; import { ICriteriaEditorContext, IExpressionEditorFunction } from '@devexpress/analytics-core/analytics-widgets-internal'; import * as ko from 'knockout'; import { IExpressionBinding } from '../../controls/properties/expressionBinding'; import { IControlPropertyDescription } from './_expressionWrapper'; export interface IExpressionObject extends IDisposable { getInfo(info?: ISerializationInfoArray): ISerializationInfoArray; getExpression(propertyName: string, eventName?: string): WrappedExpressionOptions; getExpressionsTreeItems(propertyName: string): IExpressionTreeItem[]; validateExpression(): boolean; hasWarning(): boolean; updateExpressionObjectProperties: (newInfo?: IControlPropertyDescription[]) => void; } export interface IExpressionTreeItem { expressionName: string; eventName?: string; displayName?: string; localizationId?: string; expressionObj?: IExpressionOptions; innerItems?: IExpressionTreeItem[]; } interface IReportExpressionOptions extends IExpressionOptions { propertyName?: string; control: IComponent; } export declare class WrappedExpressionOptions extends Disposable implements IExpressionOptions { eventName?: string; constructor(options: IReportExpressionOptions, handlers?: { addExpression: (newVal: string) => void; removeExpression: (expression: IExpressionBinding) => void; }, fieldListProvider?: ko.Observable | ko.Computed, eventName?: string); onHiding(e: { component: any; element: HTMLElement; }): void; onShowing(e: { component: any; element: HTMLElement; }): void; onContentReady(e: { component: any; element: HTMLElement; }): void; isValid: ko.Observable | ko.Computed; warningMessage: ko.Observable; expression: ko.Observable | ko.Computed; value: ko.Observable | ko.Computed; path: ko.Observable | ko.Computed; functions: Array; customizeCategories?: (sender: any, categories: any, dblclick?: any) => void; customizeContext?: (context: ICriteriaEditorContext) => void; rootItems: ({ name: string; needPrefix: boolean; rootPath?: undefined; } | { name: string; needPrefix: boolean; rootPath: string; })[]; } export {};