import { Observable } from 'rxjs'; import { State } from '@notiz/toolbelt/state'; import { QueryOptions } from './query'; export interface PageState { page: number; size: number; sortColumn?: string; sortOrder?: string; searchQuery?: string; searchDebounce?: number; total: number; items: T[]; } export declare class PageQuery extends State> { private query; private mapFunction; private options; private queryOptions; private infinite; private pageChange$; private _searchChange$; private searchChange$; private query$; items$: Observable; total$: Observable; page$: Observable; size$: Observable; sortColumn$: Observable; sortOrder$: Observable; searchQuery$: Observable; hasNext$: Observable; hasPrev$: Observable; isFirst$: Observable; isLast$: Observable; status$: Observable; error$: Observable; allowNext$: Observable; private infiniteRefresh; constructor(query: (page: PageState) => Observable, mapFunction?: (data: V, prev: PageState, index: number) => PageState, options?: Partial>, queryOptions?: QueryOptions, infinite?: boolean); next(): void; prev(): void; last(): void; first(): void; sort({ sortColumn, sortOrder }: { sortColumn: string; sortOrder: string; }): void; search(query: string): void; refresh(): void; }