import { EventEmitter, ElementRef } from '@angular/core';
import { IDisplayDensityOptions, DisplayDensityBase } from '../core/displayDensity';
import { OverlaySettings } from '../services/public_api';
import { IPaginatorResourceStrings } from '../core/i18n/paginator-resources';
import { IPagingEventArgs, IPagingDoneEventArgs } from './interfaces';
export declare class IgxPaginatorComponent extends DisplayDensityBase {
    private elementRef;
    protected _displayDensityOptions: IDisplayDensityOptions;
    /**
     * An @Input property that sets if the pager in the paginator should be enabled.
     * ```html
     * <igx-paginator [pagerEnabled]="true"></igx-paginator>
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    pagerEnabled: boolean;
    /**
     * An @Input property that sets if the pager in the paginator should be hidden.
     * ```html
     * <igx-paginator [pagerHidden]="true"></igx-paginator>
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    pagerHidden: boolean;
    /**
     * An @Input property that sets if the dropdown in the paginator should be enabled.
     * ```html
     * <igx-paginator [dropdownEnabled]="true"></igx-paginator>
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    dropdownEnabled: boolean;
    /**
     * An @Input property that sets if the dropdown in the paginator should be hidden.
     * ```html
     * <igx-paginator [dropdownHidden]="true"></igx-paginator>
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    dropdownHidden: boolean;
    /**
     * @deprecated Use 'resourceStrings' instead.
     * An @Input property, sets number of label of the select.
     * The default is 'Items per page' localized string.
     * ```html
     * <igx-paginator label="My custom label"></igx-paginator>
     * ```
     * @memberof IgxPaginatorComponent
     */
    selectLabel: any;
    /**
     * @deprecated Use 'resourceStrings' instead.
     * An @Input property, sets a preposition between the current page and total pages.
     * The default is 'of' localized string.
     * @memberof IgxPaginatorComponent
     */
    prepositionPage: any;
    /**
     * Emitted when `perPage` property value of the paginator is changed.
     *
     * @example
     * ```html
     * <igx-paginator (perPageChange)="onPerPageChange($event)"></igx-paginator>
     * ```
     * ```typescript
     * public onPerPageChange(perPage: number) {
     *   this.perPage = perPage;
     * }
     * ```
     */
    perPageChange: EventEmitter<number>;
    /**
     * Emitted before paging is performed.
     *
     * @remarks
     * Returns an object consisting of the old and new pages.
     * @example
     * ```html
     * <igx-paginator (paging)="paging($event)"></igx-paginator>
     * ```
     */
    paging: EventEmitter<IPagingEventArgs>;
    /**
     * Emitted after paging is performed.
     *
     * @remarks
     * Returns an object consisting of the previous and next pages.
     * @example
     * ```html
     * <igx-paginator (pagingDone)="pagingDone($event)"></igx-paginator>
     * ```
     */
    pagingDone: EventEmitter<IPagingDoneEventArgs>;
    /**
     * Emitted after the current page is changed.
     *
     * @example
     * ```html
     * <igx-paginator (pageChange)="onPageChange($event)"></igx-paginator>
     * ```
     * ```typescript
     * public onPageChange(page: number) {
     *   this.currentPage = page;
     * }
     * ```
     */
    pageChange: EventEmitter<number>;
    /**
     * Total pages calculated from totalRecords and perPage
     */
    totalPages: number;
    protected _page: number;
    protected _totalRecords: number;
    protected _selectOptions: number[];
    protected _perPage: number;
    private _resourceStrings;
    private _overlaySettings;
    private defaultSelectValues;
    /**
     * Sets the class of the IgxPaginatorComponent based
     * on the provided displayDensity.
     */
    get classCosy(): boolean;
    get classCompact(): boolean;
    get classComfortable(): boolean;
    /**
     * An @Input property, sets current page of the `IgxPaginatorComponent`.
     * The default is 0.
     * ```typescript
     * let page = this.paginator.page;
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    get page(): number;
    set page(value: number);
    /**
     * An @Input property, sets number of visible items per page in the `IgxPaginatorComponent`.
     * The default is 15.
     * ```typescript
     * let itemsPerPage = this.paginator.perPage;
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    get perPage(): number;
    set perPage(value: number);
    /**
     * An @Input property that sets the total records.
     * ```typescript
     * let totalRecords = this.paginator.totalRecords;
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    get totalRecords(): number;
    set totalRecords(value: number);
    /**
     * An @Input property that sets custom options in the select of the paginator
     * ```typescript
     * let options = this.paginator.selectOptions;
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    get selectOptions(): Array<number>;
    set selectOptions(value: Array<number>);
    /**
     * An @Input property that sets custom OverlaySettings.
     * ```html
     * <igx-paginator [overlaySettings] = "customOverlaySettings"></igx-paginator>
     * ```
     */
    get overlaySettings(): OverlaySettings;
    set overlaySettings(value: OverlaySettings);
    /**
     * An accessor that sets the resource strings.
     * By default it uses EN resources.
     */
    set resourceStrings(value: IPaginatorResourceStrings);
    /**
     * An accessor that returns the resource strings.
     */
    get resourceStrings(): IPaginatorResourceStrings;
    constructor(elementRef: ElementRef, _displayDensityOptions: IDisplayDensityOptions);
    /**
     * Returns if the current page is the last page.
     * ```typescript
     * const lastPage = this.paginator.isLastPage;
     * ```
     */
    get isLastPage(): boolean;
    /**
     * Returns if the current page is the first page.
     * ```typescript
     * const lastPage = this.paginator.isFirstPage;
     * ```
     */
    get isFirstPage(): boolean;
    /**
     * Returns if the first pager buttons should be disabled
     */
    get isFirstPageDisabled(): boolean;
    /**
     * Returns if the last pager buttons should be disabled
     */
    get isLastPageDisabled(): boolean;
    /**
     * Gets the native element.
     *
     * @example
     * ```typescript
     * const nativeEl = this.paginator.nativeElement.
     * ```
     */
    get nativeElement(): any;
    /**
     * Sets DisplayDensity for the <select> inside the paginator
     *
     * @hidden
     */
    paginatorSelectDisplayDensity(): string;
    /**
     * Goes to the next page of the `IgxPaginatorComponent`, if the paginator is not already at the last page.
     * ```typescript
     * this.paginator.nextPage();
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    nextPage(): void;
    /**
     * Goes to the previous page of the `IgxPaginatorComponent`, if the paginator is not already at the first page.
     * ```typescript
     * this.paginator.previousPage();
     * ```
     *
     * @memberof IgxPaginatorComponent
     */
    previousPage(): void;
    /**
     * Goes to the desired page index.
     * ```typescript
     * this.paginator.paginate(1);
     * ```
     *
     * @param val
     * @memberof IgxPaginatorComponent
     */
    paginate(val: number): void;
    private sortUniqueOptions;
}
export declare class IgxPaginatorModule {
}
