import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { DataSourceInterface } from '../interfaces/datasource-list.interface';
export declare class DataSourceList extends DataSource<string | undefined> {
    config: DataSourceInterface;
    dataStream: BehaviorSubject<any>;
    loadMoreData: Subject<unknown>;
    private totalLength;
    private pageSize;
    private lazyMode;
    private fetchedPages;
    private cachedData;
    private subscription;
    private arrayTotal;
    private currentPage;
    constructor(config: DataSourceInterface);
    connect(collectionViewer?: CollectionViewer): Observable<(string | undefined)[]>;
    disconnect(): void;
    unsubscribe(): void;
    addPage(page: number): void;
    setArray(value: any): void;
    resetData(): void;
    resetPages(): void;
    private setProprieties;
    getCachedData(): any[];
    setData(data: Array<any>): void;
    private getPageForIndex;
    private emitCachedData;
    private emitLoadData;
    private fetchPage;
}
