import { EventEmitter } from "../../stencil-public-runtime";
export declare class IbkTable {
  /** Referencia del web component */
  host: HTMLElement;
  /** Se eliminará el estilo por defecto de la primera fila */
  notHeading: boolean;
  /** Agregará una columna al inicio con un botón para selección  */
  selectable: boolean;
  /** Define si se mostrará una numeración por cada fila */
  enumerate: boolean;
  /** Define la columna que contiene el identificador de cada fila */
  columnOfId: number;
  /** Define si la tabla tendrá paginación */
  paginator: boolean;
  /** Define cuantas filas se mostrarán por página */
  rowsPerPage: number;
  /** Define la página actual del paginador */
  currentPage: number;
  /** Define si se mostrará un resumen de filas en la parte inferior */
  showInfo: boolean;
  /** Define si se mostrará el selector de filas */
  rowsSelector: boolean;
  /** Define los rangos que se podrán seleccionar en el selector de filas
   * Se ingresará como valor números separados por comas
   * Si se desea que el la última opción sea mostrar todas las filas se colocará "all", por ejm: "5,10,all"
   */
  rowsToShow: string;
  /** Define si la información de la tabla se ordenerá
   * Se ingresará como valor el índice a ordenar y separado por una coma el tipo de ordenamiento, ejm: 1,asc o 1,desc
   */
  sort: string;
  /** Especifica si la columna a ordenar tiene un tipo de dato concreto
   * Los valores pueden ser 'text', 'date' o 'number'
   * Por defecto se ordenará con el tipo texto
   * Si el tipo es date, la fecha deberá estar en formato dd/mm/yyyy
   */
  sortDataType: 'text' | 'date' | 'number';
  /** Se agregará una columna al final de la tabla con las acciones especificadas
   * Las acciones disponibles son 'detail', 'edit' o 'delete'
   * Las acciones se ingresaran separados por coma. Ejm: 'edit,delete'
   */
  actions: string;
  /** Buscará en cada celda el texto ingresado y lo resaltará */
  filteredText: string;
  /** Emite un evento al seleccionar una o varias filas de la tabla, envía un arreglo con los índices seleccionados */
  onselect: EventEmitter<Array<number | string>>;
  /** Emite un evento al seleccionar la acción de ver detalle */
  ondetail: EventEmitter<string | number>;
  /** Emite un evento al seleccionar la acción de editar */
  onedit: EventEmitter<string | number>;
  /** Emite un evento al seleccionar la acción de eliminar */
  ondelete: EventEmitter<string | number>;
  /** Almacena los índices seleccionados de la tabla */
  private _tempIndexes;
  /** Almacenará toda la información de la tabla */
  private _tableInfo;
  /** Almacenará la información a mostrar en la tabla (página actual) */
  private _currentTableInfo;
  /** Define la cantidad de páginas que tendrá la tabla */
  private _pages;
  componentWillLoad(): void;
  /** Configura la clase del componente basado en estados y modificadores */
  containerClass: () => string;
  /** A partir de la tabla creada por el usuario, se creará un objeto con la información de la tabla */
  createObjectFromHtml: () => void;
  drawTable: () => void;
  /** Función que se ejecuta al seleccionar alguna fila de la tabla */
  selectRow: () => void;
  /** Configuración del paginador */
  configPaginator: () => void;
  /** Función que maneja el avance o retroceso de las páginas */
  handlerPaginator: (action: 'next' | 'prev') => void;
  /** Validar que se ingrese un número en el campo de texto del paginador */
  validateEntryPage: (e: any) => void;
  /** Función que se ejecuta al escribir manualmente la página */
  editPage: (e: any) => void;
  setRowsDropdown: () => void;
  /** Función que ordena las filas de la tabla dependiendo del dato enviado en el parámetro sort */
  sortData: () => void;
  /** Función que agrega la columna de acciones dependiendo del dato enviado en el parámetro actions */
  addActions: (id: string) => string;
  emitAction: () => void;
  /** Función que filtrará la información de la tabla basado en el valor de la propiedad filteredText */
  setFilteredText: () => void;
  render(): any;
}
