import { EventEmitter, TemplateRef } from '@angular/core';
import { ISmartPagination } from './smart-pagination.type';
import * as i0 from "@angular/core";
export declare class SmartPaginationComponent implements ISmartPagination {
    /**
     * Current page number. [docs]
     * @default 1
     * @type number
     */
    activePage: number;
    /**
     * Event triggered on activePage change.
     * @type EventEmitter<number>
     */
    activePageChange: EventEmitter<number>;
    /**
     * Show/hide arrows
     * @default true
     * @type boolean
     */
    arrows: boolean;
    /**
     * Show double arrows buttons
     * @default true
     * @type boolean
     */
    doubleArrows: boolean;
    /**
     * Show/hide dots. [docs]
     * @default true
     */
    dots: boolean;
    /**
     * Maximum items number. [docs]
     * @default 5
     * @type number
     */
    set limit(value: number);
    get limit(): number;
    private _limit;
    /**
     * Number of pages. [docs]
     * @type number
     */
    set pages(value: number);
    get pages(): number;
    private _pages;
    /**
     * The content of 'firstButton' button. [docs]
     * @default '&laquo'
     * todo TemplateRef
     */
    firstButton?: string | TemplateRef<any>;
    /**
     * The content of 'lastButton' button. [docs]
     * @default '&raquo'
     * todo TemplateRef
     */
    lastButton?: string | TemplateRef<any>;
    /**
     * The content of 'nextButton' button. [docs]
     * @default '&lsaquo'
     * todo TemplateRef
     */
    nextButton?: string | TemplateRef<any>;
    /**
     * The content of 'previousButton' button. [docs]
     * @default '&rsaquo'
     * todo TemplateRef
     */
    previousButton?: string | TemplateRef<any>;
    /**
     * Set the alignment of pagination components.
     * @values 'start', 'center', 'end'
     */
    align?: 'start' | 'center' | 'end' | '';
    /**
     * Size the component small or large.
     * @values 'sm', 'lg'
     */
    size?: 'sm' | 'lg';
    /**
     * Default role for pagination. [docs]
     * @type string
     * @default 'navigation'
     */
    role: string;
    get paginationClass(): any;
    get maxPrevItems(): number;
    get maxNextItems(): number;
    get range(): number;
    get lastItem(): number;
    get computedLimit(): number;
    get itemsLimit(): number;
    get showDots(): boolean;
    get beforeDots(): boolean;
    get afterDots(): boolean;
    get items(): number[];
    setPage(page: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SmartPaginationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SmartPaginationComponent, "c-smart-pagination", ["cSmartPagination"], { "activePage": { "alias": "activePage"; "required": false; }; "arrows": { "alias": "arrows"; "required": false; }; "doubleArrows": { "alias": "doubleArrows"; "required": false; }; "dots": { "alias": "dots"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "pages": { "alias": "pages"; "required": false; }; "firstButton": { "alias": "firstButton"; "required": false; }; "lastButton": { "alias": "lastButton"; "required": false; }; "nextButton": { "alias": "nextButton"; "required": false; }; "previousButton": { "alias": "previousButton"; "required": false; }; "align": { "alias": "align"; "required": false; }; "size": { "alias": "size"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "activePageChange": "activePageChange"; }, never, never, true, never>;
    static ngAcceptInputType_activePage: unknown;
    static ngAcceptInputType_limit: unknown;
    static ngAcceptInputType_pages: unknown;
}
