import { ElementRef, OnDestroy, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { QdPaginatorDirection } from '../model/paginator-direction.enum';
import { QdTableConfig } from '../model/table-config.interface';
import { QdTableDataResolver } from '../model/table-data-resolver';
import { QdTablePaginatorCurrentPage, QdTableState } from '../model/table-store.interface';
import { QdTableStoreService } from '../store/table-store.service';
import * as i0 from "@angular/core";
export declare const PAGE_SIZE_DEFAULT = 25;
export declare class QdTablePaginatorComponent<T extends string> implements OnInit, OnDestroy {
    private readonly tableDataResolver;
    private readonly tableStoreService;
    /**
     * @description Configuration Model for Qd-Table.
     */
    config: QdTableConfig<T>;
    /**
     * A static test ID for integration tests can be set. <br />
     * The value for the HTML attribute [data-test-id].
     */
    testId?: string;
    paginatorButtons: ElementRef | undefined;
    table$: Observable<QdTableState<string> | undefined>;
    canPageForward$: Observable<boolean>;
    canPageBackward$: Observable<boolean>;
    currentPage$: Observable<QdTablePaginatorCurrentPage | undefined>;
    pageSize$: Observable<number>;
    totalCount$: Observable<number>;
    pageNav?: typeof QdPaginatorDirection;
    private _destroyed$;
    get pageSizes(): number[];
    get hasData$(): Observable<boolean>;
    constructor(tableDataResolver: QdTableDataResolver<T>, tableStoreService: QdTableStoreService<T>);
    ngOnInit(): void;
    ngOnDestroy(): void;
    navigateToPage(direction: QdPaginatorDirection): void;
    private isConfigValid;
    private initPagination;
    private getPageSizeDefault;
    private calculatePageNumber;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdTablePaginatorComponent<any>, [{ optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdTablePaginatorComponent<any>, "qd-table-paginator", never, { "config": { "alias": "config"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
}
//# sourceMappingURL=table-paginator.component.d.ts.map