import { CancellationToken } from '../../base/common/cancellation'; /** * A Pager is a stateless abstraction over a paged collection. */ export interface IPager { firstPage: T[]; total: number; pageSize: number; getPage(pageIndex: number, cancellationToken: CancellationToken): Promise; } /** * A PagedModel is a stateful model over an abstracted paged collection. */ export interface IPagedModel { length: number; isResolved(index: number): boolean; get(index: number): T; resolve(index: number, cancellationToken: CancellationToken): Promise; } export declare function singlePagePager(elements: T[]): IPager; export declare class PagedModel implements IPagedModel { private pager; private pages; get length(): number; constructor(arg: IPager | T[]); isResolved(index: number): boolean; get(index: number): T; resolve(index: number, cancellationToken: CancellationToken): Promise; } export declare class DelayedPagedModel implements IPagedModel { private model; private timeout; get length(): number; constructor(model: IPagedModel, timeout?: number); isResolved(index: number): boolean; get(index: number): T; resolve(index: number, cancellationToken: CancellationToken): Promise; } /** * Similar to array.map, `mapPager` lets you map the elements of an * abstract paged collection to another type. */ export declare function mapPager(pager: IPager, fn: (t: T) => R): IPager;