import { RemoteData } from './RemoteData';
declare type Validator = (uri: string) => boolean;
declare type Factory<T> = <S>(uri: string, extra: T) => RemoteData<S> | undefined;
export interface RemoteDataFactoryExtra {
}
export declare class RemoteDataFactory<T extends RemoteDataFactoryExtra = any> {
    protected readonly factoriesWithValidators: [Validator, Factory<T>][];
    constructor(extraFactoriesWithValidators?: [Validator, Factory<T>][]);
    create<S>(uri: string, extra: T): RemoteData<S> | undefined;
}
export {};
