import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { ScreenDetectorService } from '@al00x/screen-detector';
import { ItemRecord } from '../../../../core';
import * as i0 from "@angular/core";
export interface PaginationEvent {
    index: number;
    page: number;
    size: number;
}
interface PageItem {
    number: number;
    jump?: boolean;
}
export declare class CacPaginationComponent implements OnChanges {
    private screen;
    protected _total: import("@angular/core").WritableSignal<number>;
    set total(value: number);
    private _sizeProp;
    set sizeProp(value: number | undefined);
    index?: number;
    autoHide: boolean;
    onIndex: EventEmitter<number>;
    onUpdate: EventEmitter<PaginationEvent>;
    pageSizesList: ItemRecord<number>[];
    private _currentSizeControlValue;
    protected currentSizeControl: import("@al00x/forms").FormControlExtended<number, any>;
    visibleCount: import("@angular/core").WritableSignal<number>;
    selectedIndex: import("@angular/core").WritableSignal<number>;
    size: import("@angular/core").Signal<number>;
    page: import("@angular/core").Signal<number>;
    totalPages: import("@angular/core").Signal<number>;
    startIndex: import("@angular/core").Signal<number>;
    protected showLeftEllipsis: import("@angular/core").Signal<boolean>;
    protected showRightEllipsis: import("@angular/core").Signal<boolean>;
    protected pagesArray: import("@angular/core").Signal<PageItem[]>;
    constructor(screen: ScreenDetectorService);
    ngOnChanges(changes: SimpleChanges): void;
    next(): void;
    previous(): void;
    set(index: number): void;
    setPage(page: number): void;
    protected onSelect(page: PageItem): void;
    private emitUpdate;
    static ɵfac: i0.ɵɵFactoryDeclaration<CacPaginationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CacPaginationComponent, "cac-pagination", never, { "total": { "alias": "total"; "required": false; }; "sizeProp": { "alias": "size"; "required": false; }; "index": { "alias": "index"; "required": false; }; "autoHide": { "alias": "autoHide"; "required": false; }; }, { "onIndex": "onIndex"; "onUpdate": "onUpdate"; }, never, never, true, never>;
}
export {};
