import { EventEmitter } from '../../../../stencil-public-runtime';
import { IPropertiesFieldSearch } from "../../../snk-filter-field-search/interfaces";
import { IExpressionItem, IPropertiesExpressionItem } from "../../interfaces/IExpressionItem";
import { SnkMessageBuilder } from '../../../../lib/message/SnkMessageBuilder';
export declare class SnkExpressionItem {
  private _elFilterParamConfigRef;
  private _elValueVariable;
  private _elFilterFieldSearch;
  private _elFieldDynamic;
  private _elFilterInput;
  private _dataSourceFetcher;
  private application;
  private filterOperandDefault;
  private filterOperandTypeTextSearch;
  private readonly DEFAULT_FIELD_NAME;
  private _showValueVariable;
  private _fieldSelected;
  private _optionNotNull;
  /**
   * Expressão que será representada visualmente.
   */
  expression: IExpressionItem;
  /**
   * Controla a exibição do botão Remover.
   */
  canRemove: boolean;
  /**
   * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
   */
  messagesBuilder: SnkMessageBuilder;
  /**
   * Define se o filtro em questão é um filtro padrão.
   */
  isDefaultFilter: boolean;
  /**
   * Emitido quando acontece alterações na expressão.
   */
  ezFilterItemChange: EventEmitter<IExpressionItem>;
  /**
   * Emitido ao confirmar uma remoção.
   */
  ezFilterItemRemove: EventEmitter<IExpressionItem>;
  /**
   * Identificador da unidade de dados.
   */
  entityURI: string;
  expressionChanged(newValue: IExpressionItem, oldValue?: IExpressionItem): void;
  componentWillLoad(): void;
  componentDidRender(): void;
  private updateFieldSelected;
  private buildExpression;
  private setValueExpression;
  fieldPropsToExpressionProps(properties: IPropertiesFieldSearch): Array<IPropertiesExpressionItem>;
  expressionPropsToFieldProps(properties: Array<IPropertiesExpressionItem>): IPropertiesFieldSearch;
  private getMessage;
  private handleSelectItem;
  private hasNoChanges;
  private handleFocus;
  private handleChangeFilterInput;
  private handleChangeValueVariable;
  private openSnkFilterParamConfig;
  private onOpenPromiseReady;
  private buildOptionsOperator;
  private translateOperandOptions;
  private handleChangeOperator;
  private checkOptionIsNull;
  private confirmRemove;
  private buildFieldByType;
  private getExpressiontValue;
  private configureFieldByType;
  private setCriteriaSearch;
  render(): any;
}
