import { EventEmitter } from '../../../../stencil-public-runtime';
import { SnkMessageBuilder } from '../../../../lib/message/SnkMessageBuilder';
import { IExpressionGroup } from '../../interfaces/IExpressionItem';
export declare class SnkExpressionGroup {
  private readonly FIRST_LEVEL;
  private readonly LIMIT_GROUP_LEVEL;
  private application;
  _element: HTMLElement;
  private _conditionOperator;
  private _group;
  private _selfTop;
  canAddExpression: boolean;
  private _showDashes;
  /**
   * Tamanho do elemento pai do grupo
   */
  parentTop: number;
  /**
   * Grupo que será representado visualmente pelo componente.
   */
  group: IExpressionGroup;
  /**
   * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
   */
  messagesBuilder: SnkMessageBuilder;
  /**
   * Id do filtro que será carregado.
   */
  filterId: string;
  /**
   * Identificador da unidade de dados.
   */
  entityURI: string;
  /**
   * Define se o filtro em questão é um filtro padrão.
   */
  isDefaultFilter: boolean;
  /**
   * Emitido quando ocorrer alterações no grupo.
   */
  ezFilterGroupChange: EventEmitter<IExpressionGroup>;
  /**
   * Emitido ao pressionar o botão de remover grupo.
   */
  ezFilterGroupRemove: EventEmitter<IExpressionGroup>;
  /**
   * Emitido ao alterar quantidade de grupos ou expressões
   */
  ezExpressionGroupLayoutChanged: EventEmitter<null>;
  /**
   * Listener para capturar adição e remoção de grupos e items de expressão.
   */
  todoCompletedHandler(_: CustomEvent<string>): void;
  getExpressionGroup(): Promise<IExpressionGroup>;
  watchGroup(newValue: IExpressionGroup): void;
  componentWillLoad(): void;
  componentDidRender(): void;
  changeHandler(): void;
  /**
   * Função que define o valor atualizado da propriedade top do elemento em tela para calcular o tamanho do tracejado.
   */
  private setSelfTop;
  /**
   * Função que calcula o tamanho que deve ter o tracejado.
   */
  private getDashedHeight;
  private getOperand;
  private getMessage;
  private updateDashes;
  private renderExpressionItems;
  private renderGroups;
  private handleFilterGroupRemove;
  private handleFilterItemRemove;
  private isFilledItem;
  private handleFilterItemChange;
  private handleAddExpression;
  private handleAddGroup;
  private buildGroupStyle;
  private handleConditionOperatorChange;
  private confirmRemoveGroup;
  private getTooltipMessageForOperator;
  private getDataGroupLevel;
  private canAddGroup;
  private isFirstLevel;
  private onStopPropagation;
  private getMessageAddTooltip;
  private canChangeGroupCondition;
  render(): any;
}
