import { Pager } from '../../core/pager';
import { ListResponse } from '../../core/list-response';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Implements {@link Pager} contract and represents buffered list behavior.
 * @note This type is configured to use with {@link FiltersService}.
 */
export declare class RTBufferedPager implements Pager {
    /**
     * Global settings for properties such as default values and constraints for pager properties.
     *
     * These settings are static and their values are copied to the properties of the same name for each instance of {@link RTBufferedPager} type.
     *
     * So, changing of this settings will affect all instances of {@link RTBufferedPager} type that will be created after such changes.
     * If you want to change settings of concrete object you can use it the same name properties.
     */
    static settings: {
        /**
         * @see {@link RTBufferedPager.defaultRowCount}
         */
        defaultRowCount: number;
        /**
         * @see {@link RTBufferedPager.maxRowCount}
         */
        maxRowCount: number;
        /**
         * @see {@link RTBufferedPager.minRowCount}
         */
        minRowCount: number;
    };
    /**
     * @inheritdoc
     */
    appendedOnLoad: boolean;
    /**
     * @inheritdoc
     */
    totalCount: number;
    /**
     * @inheritdoc
     */
    loadedCount: number;
    /**
     * This is both initial value and value which will be applied to {@link takeRowCount} property on {@link reset} method execution.
     */
    defaultRowCount: number;
    /**
     * The smallest value that can be applied to {@link takeRowCount} property.
     */
    minRowCount: number;
    /**
     * The biggest value that can be applied to {@link takeRowCount} property.
     */
    maxRowCount: number;
    /**
     * This property is applied to the server request and it specifies how many rows are already loaded and must be skipped on next request.
     *
     * @note This property is ready to use with {@link FiltersService} since it has {@link filter} annotation.
     * @see {@link BufferedListRequest.skip}
     */
    skip: number;
    takeRowCount$: Observable<number>;
    private handlesFlatResponse;
    private lastChunkRecieved;
    /**
     * This property is applied to the server request and it specifies how many rows must be loaded on next request.
     * @note This property is ready to use with {@link FiltersService} since it has {@link filter} annotation.
     * @see {@link BufferedListRequest.take}
     */
    get takeRowCount(): number;
    /**
     * Executes several checks. For example, it doesn't accept values bigger than {@link maxRowCount}.
     */
    set takeRowCount(value: number);
    /**
     * Returns `true` if it's possible to load more records (e.g. currently not all records loaded to the list).
     */
    get canLoadMore(): boolean;
    /**
     * @inheritdoc
     */
    processResponse(response: ListResponse<any> | any[]): void;
    /**
     * @inheritdoc
     */
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RTBufferedPager, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RTBufferedPager>;
}
//# sourceMappingURL=buffered-pager.d.ts.map