import { CID } from 'multiformats/cid';
import { ServerTiming } from './utils/server-timing.ts';
import type { ResolveURLOptions, ResolveURLResult, URLResolver as URLResolverInterface } from './index.ts';
import type { DNSLink } from '@helia/dnslink';
import type { IPNSResolver } from '@helia/ipns';
import type { Helia } from 'helia';
import type { Blockstore } from 'interface-blockstore';
import type { PathEntry } from 'ipfs-unixfs-exporter';
export interface WalkPathResult {
    ipfsRoots: CID[];
    terminalElement: PathEntry;
    blockstore: Blockstore;
    redirected: boolean;
}
export interface URLResolverComponents {
    helia: Helia;
    ipnsResolver: IPNSResolver;
    dnsLink: DNSLink;
}
export interface URLResolverInit {
    sessionCacheSize?: number;
    sessionTTLms?: number;
}
export declare class URLResolver implements URLResolverInterface {
    private log;
    private readonly components;
    private readonly blockstoreSessions;
    constructor(components: URLResolverComponents, init?: URLResolverInit);
    resolve(url: URL, serverTiming?: ServerTiming, options?: ResolveURLOptions): Promise<ResolveURLResult | Response>;
    private getBlockstore;
    private resolveDNSLink;
    private resolveIPNSName;
    private resolveIPFSPath;
    private walkPath;
}
//# sourceMappingURL=url-resolver.d.ts.map