/**
 * @packageDocumentation
 * @module k8s-resource-list
 */
import { HttpErrorResponse } from '@angular/common/http';
import { Observable, ReplaySubject } from 'rxjs';
import { KubernetesResource, KubernetesResourceList, ResourceListParams, Status } from '../core/public-api';
import { ConfigWithParams, ConfigWithRoute, ItemsScanner, ListParams, LoadSnapshot, LoadState, StreamListLoader } from './types';
export declare class K8SResourceList<R extends KubernetesResource = KubernetesResource, Q extends object = ResourceListParams, P extends Q & ListParams = Q & ListParams> implements StreamListLoader<KubernetesResourceList<R>, R> {
    private readonly reloadAction$$;
    private readonly loadMoreAction$$;
    private readonly itemsScanner$$;
    private readonly destroy$$;
    private readonly insertFn;
    loadState$: Observable<LoadState<KubernetesResourceList<R>>>;
    queryParams$: Observable<Q>;
    rawResponse$: Observable<KubernetesResourceList<R>>;
    loading$: Observable<boolean>;
    loadingError$: Observable<HttpErrorResponse | Status>;
    hasMore$: Observable<boolean>;
    continueToken$: Observable<string>;
    items$: Observable<R[]>;
    bypassItems$: ReplaySubject<R[]>;
    timer: number;
    snapshot: LoadSnapshot<KubernetesResourceList<R>, R, Q>;
    constructor({ fetcher, activatedRoute }: ConfigWithRoute<R, Q, P>);
    constructor({ fetcher, fetchParams$ }: ConfigWithParams<R, Q, P>);
    reload(silent?: boolean): void;
    loadMore(): void;
    scanItems(scanner: ItemsScanner<R>): void;
    destroy(): void;
    create(resource: R): void;
    update(resource: R): void;
    delete(resource?: R): void;
    private _create;
    private _update;
    private _delete;
    private buildLoadStateStream;
    private extractContinueTokenFromState;
    private initStreams;
    private buildWatcher;
}
