import { EzGridColumn, IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
import { EventEmitter } from '../../stencil-public-runtime';
export declare class SnkGridConfig {
  private static readonly CURRENT_CONFIG_VERSION;
  private _orderListItems;
  private _orderPriorityList;
  private _visibleList;
  private _hiddenList;
  private _columListItems;
  private _dataChanged;
  private _componenteInternalKey;
  private _element;
  /**
   * Aba selecionada das configurações da grade.
   */
  selectedIndex: number;
  /**
   * Colunas da grade.
   */
  columns: Array<EzGridColumn>;
  /**
   * Configurações da grade.
   */
  config: IGridConfig;
  /**
   * Nome usado para salvar/recuperar a configuração.
   */
  configName: string;
  /**
   * Nome usado para salvar/recuperar a configuração.
   */
  resourceID: string;
  /**
   * Emitido ao salvar a alteração das configurações.
   */
  configChange: EventEmitter<IGridConfig>;
  /**
   * Emitido ao cancelar a alteração das configurações.
   */
  configCancel: EventEmitter<void>;
  _collapsibleBoxListOrder: boolean;
  _collapsibleBoxListSelect: boolean;
  /**
   * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
   * através de um pequeno modulo na estrutura da aplicação:
   * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
   * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-grid.msg.ts"
   */
  private getMessage;
  private getSortableColumns;
  private createOrderList;
  private createColumnList;
  private buildVisibleGroup;
  private buildHiddenGroup;
  private createOrderListSlotDataElementId;
  private buildOrderListSlot;
  private updateOrder;
  finish(): void;
  private updateColumns;
  private buildColumnFromListItem;
  private saveGridConfigOnStorage;
  private reOrderPriorityColumns;
  private save;
  createConfigFromState(state: any): {
    columns: any[];
  };
  closeConfig(): void;
  handleColumnListChange(evt: CustomEvent): void;
  handleOrderListChange(evt: CustomEvent): void;
  componentWillRender(): void;
  componentDidLoad(): void;
  private handleRightListChange;
  private getListSlots;
  private renderResetConfigBtn;
  setDefaultConfig(): Promise<void>;
  private buildListItemFromColumn;
  render(): any;
}
