import { Renderer2, ViewContainerRef, KeyValueDiffer, DoCheck, KeyValueDiffers, AfterViewInit } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
import * as i0 from "@angular/core";
export declare class MicCustomPaginatorDirective implements DoCheck, AfterViewInit {
    private readonly paginator;
    private readonly containerRef;
    private readonly renderer;
    private readonly differs;
    private readonly pageGapTxt;
    private readonly rangeStart;
    private readonly rangeEnd;
    private readonly buttons;
    private readonly currentPage;
    dataDiffer: KeyValueDiffer<any, any>;
    private readonly defaultNbPagesToShow;
    readonly micCustomPaginator: boolean;
    get nbPagesToShow(): number;
    set nbPagesToShow(value: number);
    get numOfPages(): number;
    get lastPageIndex(): number;
    /**
     *  Constructor
     *
     */
    constructor(paginator: MatPaginator, containerRef: ViewContainerRef, renderer: Renderer2, differs: KeyValueDiffers);
    ngDoCheck(): void;
    /**
     * Update page data on page size change
     *
     * @param newPageSize new page size
     */
    handlePageSizeChange(newPageSize: number): void;
    /**
     * Update page data on page data change
     *
     * @param newPageIndex new page index
     */
    handlePageIndexChange(newPageIndex: number): void;
    /**
     * Update page data on paginator data length change
     *
     * @param newLength new data length
     */
    handleLengthChange(newLength: number): void;
    /**
     * Compute the new pages range from the page change record
     *
     * @param item page change record
     */
    private computePageRange;
    /**
     * Create the pagination button based on the rangeStart and rangeEnd
     *
     */
    private buildPageNumbers;
    /**
     * Create a pagination button
     *
     * @param i Index of the button
     * @param pageIndex Current page index
     * @returns MatButton element
     */
    private createButton;
    private switchPage;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MicCustomPaginatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MicCustomPaginatorDirective, "[micCustomPaginator]", never, { "micCustomPaginator": { "alias": "micCustomPaginator"; "required": false; }; "nbPagesToShow": { "alias": "nbPagesToShow"; "required": false; }; }, {}, never, never, false, never>;
}
