import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { TableHeaderStructure } from '../../models/table/header-structure.model';
import * as i0 from "@angular/core";
export declare class LibSimplifiedTableComponent implements OnInit, AfterViewInit, OnChanges {
    private readonly _cdr;
    private readonly _renderer;
    private _paginationID;
    private _recordsList;
    private _currentPage;
    private _currentItemsPerPage;
    /** Lista de registros a serem exibidos na tabela.
   * @required */
    get list(): any[] | undefined;
    set list(value: any[] | undefined);
    /** Lista de cabeçalhos para as colunas da tabela, incluindo o nome, a largura da coluna e classes customizadas.
     * @see TableHeaderStructure
    */
    headers: TableHeaderStructure[];
    /** Opções de contagem de itens por página disponíveis para o usuário.
     * @required */
    counts?: number[];
    /** Determina se a tabela deve usar paginação.
     * @default true */
    usePagination: boolean;
    /** Informa se o counter de registros deve aparecer ou não.
     * @default true */
    showCounter: boolean;
    /** Informa se as rows da tabela devem ter o efeito de hover.
     * @default true */
    hoverable: boolean;
    /** Informa se a table deve permitir scroll lateral.
     * Se for true, todas as colunas terão a largura fixa de 250px, ignorando valores customizados (esta definição pode mudar no futuro).
     * @default false */
    scrollable: boolean;
    /** Mensagem customizada para lista vazia */
    emptyListMessage?: string;
    /** Informa se a lógica e elementos de paginação devem ficar fora do componente e serem gerenciados pelo componente pai.
     * @default false */
    useCustomPagination: boolean;
    /**
     * DEVE ser utilizada em caso de paginação visível.
     * Informa um ID para a paginação da tabela específica, usada para distinguir tabelas distintas.
     * @example
     * ```html
     * <lib-table paginationID="simpleTableExample"></lib-table>
     * ```
    */
    get paginationID(): string;
    set paginationID(value: string);
    divBorderClass: string;
    tableBorderClass: string;
    templates: Record<string, TemplateRef<any> | null>;
    upperContentTemplate?: TemplateRef<any>;
    /** Página atual da tabela. */
    get page(): number;
    set page(value: number);
    /** Número de itens a serem exibidos por página. */
    get itemsPerPage(): number;
    set itemsPerPage(value: number);
    get firstItemOfPage(): number;
    get lastItemOfPage(): number;
    get itemsDisplayText(): string;
    emptyListTD?: ElementRef<HTMLTableCellElement>;
    colspanWidth: string;
    constructor(_cdr: ChangeDetectorRef, _renderer: Renderer2);
    /** Inicializa o componente e define o número inicial de itens por página. */
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /** Monitora as mudanças nas entradas do componente e realiza ajustes, como resetar a paginação ou validar o layout das colunas.
     * @param changes Objeto que contém as mudanças nas entradas do componente. */
    ngOnChanges(changes: SimpleChanges): void;
    /** Modifica a quantidade de itens a ser mostrada na lista.
     * @param event parâmetro de evento que irá selecionar a nova quantidade. */
    onSelectChange(event: any): void;
    /** Reseta a paginação da listagem com base no número atual de registros.
     * @param list Lista de registros para resetar a paginação. */
    resetPagination(list: unknown[]): void;
    /** Atualiza as informações relacionadas ao contador (usado no footer da tabela, por exemplo) */
    private updateCounterInfo;
    /** Atualiza o colspan para a célula de "lista vazia" e força detecção de mudança */
    private updateColspanWidth;
    /** Valida os headers da tabela quanto ao uso correto de classes de largura */
    private validateHeaders;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibSimplifiedTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibSimplifiedTableComponent, "lib-simplified-table", never, { "list": { "alias": "list"; "required": true; }; "headers": { "alias": "headers"; "required": true; }; "counts": { "alias": "counts"; "required": false; }; "usePagination": { "alias": "usePagination"; "required": false; }; "showCounter": { "alias": "showCounter"; "required": false; }; "hoverable": { "alias": "hoverable"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "emptyListMessage": { "alias": "emptyListMessage"; "required": false; }; "useCustomPagination": { "alias": "useCustomPagination"; "required": false; }; "paginationID": { "alias": "paginationID"; "required": false; }; "divBorderClass": { "alias": "divBorderClass"; "required": false; }; "tableBorderClass": { "alias": "tableBorderClass"; "required": false; }; "templates": { "alias": "templates"; "required": false; }; "upperContentTemplate": { "alias": "upperContentTemplate"; "required": false; }; }, {}, never, never, true, never>;
}
