import { CID } from 'multiformats/cid';
import type { ResolveURLOptions, ResolveURLResult, Resource, URLResolver as URLResolverInterface } from './index.ts';
import type { ParsedURL } from './utils/parse-url-string.ts';
import type { ServerTiming } from './utils/server-timing.ts';
import type { DNSLink } from '@helia/dnslink';
import type { IPNSResolver } from '@helia/ipns';
import type { AbortOptions, PeerId } from '@libp2p/interface';
export interface URLResolverComponents {
    ipnsResolver: IPNSResolver;
    dnsLink: DNSLink;
    timing: ServerTiming;
}
export declare class URLResolver implements URLResolverInterface {
    private readonly components;
    constructor(components: URLResolverComponents);
    resolve(resource: Resource, options?: ResolveURLOptions): Promise<ResolveURLResult>;
    parseUrlString(urlString: string, options?: ResolveURLOptions): Promise<ResolveURLResult>;
    resolveCIDResource(cid: CID, parsed: Partial<ParsedURL> & Pick<ParsedURL, 'url'>, options?: ResolveURLOptions): Promise<ResolveURLResult>;
    resolveDNSLink(domain: string, parsed: ParsedURL, options?: ResolveURLOptions): Promise<ResolveURLResult>;
    resolveIPNSName(resource: string, key: PeerId, parsed: Partial<ParsedURL> & Pick<ParsedURL, 'url'>, options?: AbortOptions): Promise<ResolveURLResult>;
}
//# sourceMappingURL=url-resolver.d.ts.map