///
import { TemplateRef, EventEmitter, OnChanges, OnInit, IterableDiffers, DoCheck, SimpleChanges } from "@angular/core";
export declare class Pagination implements OnInit, DoCheck, OnChanges {
availablePageSizes: number[];
pageSize: number;
lazy: boolean;
pager: string;
maxVisiblePages: number;
filterFunction: (data: Array, restraints: Restraints) => Array;
sortFunction: (data: Array, restraints: Restraints) => Array;
pageChange: EventEmitter;
onLazy: EventEmitter;
private pageTemplate;
private _data;
private dataToDisplay;
private totalRows;
private currentPage;
private pages;
private pageContext;
private differ;
constructor(differs: IterableDiffers);
data: Array | LazyPageData;
ngOnInit(): any;
ngDoCheck(): any;
ngOnChanges(changes: SimpleChanges): any;
filter(): void;
sort(): void;
refresh(): void;
open(pageNumber: number): void;
private shiftVisiblePages();
private calculatePaginationBoundaries();
private preparePageContext();
private changePageSize(newPageSize);
private emitPageDataRequest();
private openNext();
private openPrevious();
private openFirst();
private openLast();
private hasNext();
private hasPrev();
private getPageCount();
private hasDataChanged();
}
export declare class PageTemplate {
templateRef: TemplateRef;
constructor(templateRef: TemplateRef);
}
export declare const PAGINATION_UI_DIRECTIVES: Array;
export interface LazyPageData {
data: Array;
totalRows: number;
}
export interface LazyLoadEvent {
page: number;
rows: number;
restraints: Restraints;
}
export interface PageContext {
pageData?: Array;
restraints: Restraints;
}
export interface Restraints {
custom: any;
orderBy?: OrderMeta;
filterBy: FilterMeta;
}
export interface OrderMeta {
field?: string;
order?: number;
}
export interface FilterMeta {
[filteredField: string]: string | number;
}