import { type TuiContext } from '@taiga-ui/cdk/types';
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
import * as i0 from "@angular/core";
export declare class TuiPagination {
    private readonly els;
    private readonly el;
    private readonly maxHalfLength;
    private readonly maxElementsLength;
    private readonly lastElementIndex;
    private readonly itemsFit;
    private readonly lastIndex;
    private readonly reverseIndex;
    protected readonly texts: import("@angular/core").Signal<readonly [previous_page: string, next_page: string]>;
    protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
    protected readonly options: import("./pagination.options").TuiPaginationOptions;
    protected readonly buttonSize: import("@angular/core").Signal<"xs" | "s">;
    protected readonly elementsLength: import("@angular/core").Signal<number>;
    readonly length: import("@angular/core").InputSignal<number>;
    readonly focusable: import("@angular/core").InputSignal<boolean>;
    readonly size: import("@angular/core").InputSignal<import("@taiga-ui/core/types").TuiSizeL>;
    readonly disabled: import("@angular/core").InputSignal<boolean>;
    readonly activePadding: import("@angular/core").InputSignal<number>;
    readonly sidePadding: import("@angular/core").InputSignal<number>;
    readonly content: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<number>>>;
    readonly index: import("@angular/core").ModelSignal<number>;
    readonly arrowIsDisabledRight: import("@angular/core").Signal<boolean>;
    readonly arrowIsDisabledLeft: import("@angular/core").Signal<boolean>;
    readonly nativeFocusableElement: import("@angular/core").Signal<HTMLElement | null>;
    get focused(): boolean;
    protected elementIsFocusable(index: number): boolean;
    /**
     * Get index by element index
     * @param elementIndex
     * @returns index or null (for '…')
     */
    protected getItemIndexByElementIndex(elementIndex: number): number | null;
    protected getElementMode(index?: number): string;
    protected onElementClick(index: number): void;
    protected onElementKeyDownArrowLeft(element: HTMLElement): void;
    protected onElementKeyDownArrowRight(element: HTMLElement): void;
    protected onArrowClick(step: -1 | 1): void;
    /**
     * Are there collapsed items at that index
     * @param index
     * @returns there are collapsed items
     */
    private hasCollapsedItems;
    private tryChangeTo;
    private updateIndex;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiPagination, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiPagination, "tui-pagination", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "activePadding": { "alias": "activePadding"; "required": false; "isSignal": true; }; "sidePadding": { "alias": "sidePadding"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; }, { "index": "indexChange"; }, never, never, true, never>;
}
