import { Observable } from 'rxjs';
/**
 * Similar to Promise.race() but only resolves with the first successful promise.
 * It will only reject if all promises reject.
 */
export declare function raceSuccess<T>(promises: Promise<T>[]): Promise<T>;
export declare function dnsResolver(endpoint: string, name: string, type: string): Promise<string>;
export declare const defaultDnsServers: string[];
export declare function dnsLookup(name: string, type: string, dnsServers?: string[]): Promise<string>;
export declare function fetchContentViaHttp(url: string): Observable<Blob | null>;
export type IpfsGatewayFunction = (cid: string) => string;
export declare const w3sIpfsGateway: IpfsGatewayFunction;
export declare const storachaIpfsGateway: IpfsGatewayFunction;
export declare const localPathIpfsGateway: IpfsGatewayFunction;
export declare const localSubDomainIpfsGateway: IpfsGatewayFunction;
export declare const defaultIpfsGatewayServers: Array<IpfsGatewayFunction>;
export declare function fetchCidContentViaHttp(cid: string, path?: string, ipfsGatewayServers?: Array<IpfsGatewayFunction>): Observable<Blob | null>;
export declare function fetchCidContent(cid: string, path?: string, ipfsGatewayServers?: Array<IpfsGatewayFunction>): Promise<Blob | null>;
export declare function fetchCidContentAsJson(cid: string, path?: string, _fetchCidContent?: typeof fetchCidContent, ipfsGatewayServers?: Array<IpfsGatewayFunction>): Promise<any | null>;
