import type { LookupAddress } from 'node:dns'; import { type ArkmeLinkMetadata } from '../link-metadata.js'; export interface ArkmeLinkDocument { status: number; contentType?: string; location?: string; body: string; } export interface ArkmeLinkDocumentReader { read(url: URL, options?: { signal?: AbortSignal; }): Promise; } export declare function isPublicNetworkAddress(address: string): boolean; export declare function isProxySyntheticNetworkAddress(address: string): boolean; export interface ArkmeHostAddressResolver { lookup(hostname: string, options?: { signal?: AbortSignal; }): Promise; } export interface ArkmeCancelableDnsResolver { resolve4(hostname: string): Promise; resolve6(hostname: string): Promise; cancel(): void; } export type ArkmeSystemAddressLookup = (hostname: string) => Promise; export interface ArkmePinnedDocumentTransport { read(url: URL, addresses: readonly LookupAddress[], options?: { signal?: AbortSignal; }): Promise; } export declare class NodeArkmeHostAddressResolver implements ArkmeHostAddressResolver { private readonly resolverFactory; private readonly systemLookup; constructor(resolverFactory?: () => ArkmeCancelableDnsResolver, systemLookup?: ArkmeSystemAddressLookup); lookup(hostname: string, options?: { signal?: AbortSignal; }): Promise; } export declare class NodeArkmePinnedDocumentTransport implements ArkmePinnedDocumentTransport { private readonly maxBytes; private readonly idleTimeoutMs; constructor(options?: { maxBytes?: number; idleTimeoutMs?: number; }); read(url: URL, addresses: readonly LookupAddress[], options?: { signal?: AbortSignal; }): Promise; } export declare class NodeArkmeLinkDocumentReader implements ArkmeLinkDocumentReader { private readonly resolver; private readonly transport; constructor(resolver?: ArkmeHostAddressResolver, transport?: ArkmePinnedDocumentTransport); read(url: URL, options?: { signal?: AbortSignal; }): Promise; } export declare class ArkmeLinkMetadataService { private readonly reader; private readonly lifecycle; private readonly timeoutMs; private readonly coordinator; constructor(reader?: ArkmeLinkDocumentReader, options?: { maxConcurrent?: number; maxQueue?: number; timeoutMs?: number; }); resolve(rawUrl: string, options?: { signal?: AbortSignal; }): Promise; dispose(): void; private timeoutError; private load; } //# sourceMappingURL=link-metadata-service.d.ts.map