import { OnInit } from '@angular/core';
export declare class DatatableComponent implements OnInit {
    private dataSource;
    headers: any;
    pageSize: number;
    pageSizeOptions: number[];
    pageIndex: number;
    tableBtnOptions: BtnOption[];
    rowBtnOptions: BtnOption[];
    showNumeration: boolean;
    showSearcher: boolean;
    showSizeOptions: boolean;
    showPaginator: boolean;
    private filterText;
    private dataSourceFilter;
    constructor();
    ngOnInit(): void;
    /** Obtener fuente de datos
     * @description Devuelve los datos filtrados en caso de que `filterText` tenga
     * valor, de lo contrario devuelve el total de datos. */
    getDataSource(): any[];
    /** Obtener datos por página
     * @description Devuelve los datos por tamaño de página (número de renglones)
     * dependiendo del índice de página del que se encuentre. */
    getPageData(): any[];
    /** Obtener el renglón inicial por página
     * @description Devuelve el numero del renglón inicial de la página actual. */
    getPageRowStart(): number;
    /** Obtener el renglón final por página
     * @description Devuelve el numero del renglón final de la página actual. */
    getPageRowEnd(): number;
    /** Ir a la primer página */
    goFirstPage(): void;
    /** Ir a la página anterior */
    goPreviousPage(): void;
    /** Ir a la siguiente página */
    goNextPage(): void;
    /** Ir a la ultima página */
    goLastPage(): void;
    /** Obtener ultima página
     * @description Devuelve el índice de la ultima página de los datos disponibles
     * calculado por el tamaño de datos por página. */
    getLastPage(): number;
    /** Cambiar tamaño de página
     * @description Cambia el tamaño de renglones de la tabla por página vinculado
     * con el índice de la página actual para no rebasar el total de datos por página.
     * @param size Valor para el nuevo tamaño de página. */
    changePageSize(size: number): void;
    /** Revisar tamaño de página
     * @description Verifica si `pageSize` está vacío, en tal caso se le asignará
     * el primer valor de la lista de opciones. En caso de que la lista de opciones
     * también se encuentre vacía, agrega el total de los datos como valor único. */
    private checkPageSize;
    /** Añadir tamaño de página
     * @description Añade a la lista de opciones de tamaño de pagina el tamaño
     * de pagina `pageSize` que llegue como parámetro. */
    private addPageSizeToPageSizeOptions;
    /** Obtener encabezados
     * @description Obtiene los encabezados de la tabla, en caso de que no se
     * definan como parámetro, devolverá una lista de las llaves de la primer fila. */
    getHeaders(): object[];
    /** Aplicar filtro
     * @description Guarda en `filterText` lo escrito en la caja de búsqueda y
     * guarda en `dataSourceFilter` el filtro aplicado en los datos.
     * @param filter Texto escrito en la caja de búsqueda. */
    applyFilter(filter: string): void;
}
/** Button Option
 * @param title Titulo del boton.
 * @param action Funcion del boton.
 * @param icon Interface Button Icon. */
export interface BtnOption {
    title: string;
    action: Function;
    icon?: BtnIcon;
}
/** Button Icon
 * @param origin Origen o tipo de icono.
 * @param icon Definicion del icono o recurso. */
interface BtnIcon {
    origin: String;
    icon: String;
}
export {};
