/**
 * @packageDocumentation
 * @module async-data
 */
import { Observable } from 'rxjs';
import { StringMap } from '../core/public-api';
import { DataError, DataMapper, DataStateAdapter, LoaderConfig, LoaderConfigWithInterval } from './types';
export interface AsyncLoadState<D> {
    data?: D;
    loading?: boolean;
    error?: DataError;
}
export declare class AsyncDataLoader<D = unknown, P = StringMap> implements DataStateAdapter<D> {
    private readonly reloadAction$$;
    private readonly dataMapper$$;
    snapshot: {
        data: D;
        params: P;
        loading: boolean;
        error: DataError;
    };
    loadState$: Observable<AsyncLoadState<D>>;
    rawData$: Observable<D>;
    data$: Observable<D>;
    loading$: Observable<boolean>;
    error$: Observable<DataError>;
    constructor(config: LoaderConfig<D, P> | LoaderConfigWithInterval<D, P>);
    reload(data?: D): void;
    mapData(mapper: DataMapper<D>): void;
    private buildFetcher;
}
