import * as _angular_core from '@angular/core';

type ZPaginationSize = 'sm' | 'default' | 'lg';
interface ZPaginationConfig {
    pageSize?: number;
    pageSizeOptions?: number[];
    showSizeChanger?: boolean;
    showQuickJumper?: boolean;
    showTotal?: boolean;
    simple?: boolean;
}
interface ZPageChangeEvent {
    pageIndex: number;
    pageSize: number;
}

declare class ZPaginationComponent {
    private readonly _zTranslate;
    readonly zOnPageChange: _angular_core.OutputEmitterRef<ZPageChangeEvent>;
    readonly zPageIndex: _angular_core.ModelSignal<number>;
    readonly zPageSize: _angular_core.ModelSignal<number>;
    readonly zTotal: _angular_core.InputSignal<number>;
    readonly zPageSizeOptions: _angular_core.InputSignal<number[]>;
    readonly zShowSizeChanger: _angular_core.InputSignal<boolean>;
    readonly zShowQuickJumper: _angular_core.InputSignal<boolean>;
    readonly zShowTotal: _angular_core.InputSignal<boolean>;
    readonly zSimple: _angular_core.InputSignal<boolean>;
    readonly zSize: _angular_core.InputSignal<ZPaginationSize>;
    readonly zDisabled: _angular_core.InputSignal<boolean>;
    readonly zTotalLabel: _angular_core.InputSignal<string | null>;
    readonly zPerPageLabel: _angular_core.InputSignal<string | null>;
    readonly zGoToLabel: _angular_core.InputSignal<string | null>;
    protected readonly totalLabelText: _angular_core.Signal<string>;
    protected readonly perPageLabelText: _angular_core.Signal<string>;
    protected readonly goToLabelText: _angular_core.Signal<string>;
    protected readonly totalPages: _angular_core.Signal<number>;
    protected readonly pageSizeOptions: _angular_core.Signal<{
        label: string;
        value: number;
    }[]>;
    protected readonly visiblePages: _angular_core.Signal<(number | "ellipsis")[]>;
    protected readonly canGoPrev: _angular_core.Signal<boolean>;
    protected readonly canGoNext: _angular_core.Signal<boolean>;
    protected goToPage(page: number): void;
    protected goToPrev(): void;
    protected goToNext(): void;
    protected onPageSizeChange(size: unknown): void;
    protected onQuickJump(event: Event): void;
    private _emitChange;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZPaginationComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZPaginationComponent, "z-pagination", never, { "zPageIndex": { "alias": "zPageIndex"; "required": false; "isSignal": true; }; "zPageSize": { "alias": "zPageSize"; "required": false; "isSignal": true; }; "zTotal": { "alias": "zTotal"; "required": true; "isSignal": true; }; "zPageSizeOptions": { "alias": "zPageSizeOptions"; "required": false; "isSignal": true; }; "zShowSizeChanger": { "alias": "zShowSizeChanger"; "required": false; "isSignal": true; }; "zShowQuickJumper": { "alias": "zShowQuickJumper"; "required": false; "isSignal": true; }; "zShowTotal": { "alias": "zShowTotal"; "required": false; "isSignal": true; }; "zSimple": { "alias": "zSimple"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zTotalLabel": { "alias": "zTotalLabel"; "required": false; "isSignal": true; }; "zPerPageLabel": { "alias": "zPerPageLabel"; "required": false; "isSignal": true; }; "zGoToLabel": { "alias": "zGoToLabel"; "required": false; "isSignal": true; }; }, { "zOnPageChange": "zOnPageChange"; "zPageIndex": "zPageIndexChange"; "zPageSize": "zPageSizeChange"; }, never, never, true, never>;
}

export { ZPaginationComponent };
export type { ZPageChangeEvent, ZPaginationConfig, ZPaginationSize };
