import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
import * as _angular_core from '@angular/core';

declare class SiPaginationComponent {
    private static maxItems;
    /**
     * The total number of pages.
     * Alternatively use `itemsPerPage` and `totalItems`
     */
    readonly totalPages: _angular_core.InputSignal<number | undefined>;
    /**
     * The current active page, counting starts from 1
     *
     * @defaultValue 1
     */
    readonly currentPage: _angular_core.ModelSignal<number>;
    /**
     * The number of items per page.
     * Used to calculate the total number of page if `totalPages` is not available
     */
    readonly pageSize: _angular_core.InputSignal<number | undefined>;
    /**
     * The total number of items.
     * Used to calculate the total number of page if `totalPages` is not available
     */
    readonly totalRowCount: _angular_core.InputSignal<number | undefined>;
    /**
     * The text of the back button for pagination. Required for a11y.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_PAGINATION.BACK:Back`)
     * ```
     */
    readonly backButtonText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * The text of the forward button for pagination. Required for a11y.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)
     * ```
     */
    readonly forwardButtonText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * When multiple paginations are used on the same page each pagination needs a distinct aria label.
     * Required for a11y.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)
     * ```
     */
    readonly navAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    private readonly calculatedTotalPages;
    protected readonly prevDisabled: _angular_core.Signal<boolean>;
    protected readonly nextDisabled: _angular_core.Signal<boolean>;
    protected readonly pageButtons: _angular_core.Signal<{
        page: number;
        sep: boolean;
    }[]>;
    protected readonly icons: Record<"elementLeft3" | "elementRight3", string>;
    protected direction(event: Event, delta: number): void;
    protected setPage(event: Event, page: number): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPaginationComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiPaginationComponent, "si-pagination", never, { "totalPages": { "alias": "totalPages"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "totalRowCount": { "alias": "totalRowCount"; "required": false; "isSignal": true; }; "backButtonText": { "alias": "backButtonText"; "required": false; "isSignal": true; }; "forwardButtonText": { "alias": "forwardButtonText"; "required": false; "isSignal": true; }; "navAriaLabel": { "alias": "navAriaLabel"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; }, never, never, true, never>;
}

declare class SiPaginationModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPaginationModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiPaginationModule, never, [typeof SiPaginationComponent], [typeof SiPaginationComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiPaginationModule>;
}

export { SiPaginationComponent, SiPaginationModule };
