export type MaterializerEvidence = ReadonlyArray<{ readonly name: string; readonly value: string; }>; export type MaterializerProblem = { readonly status: number; readonly code: string; readonly detail: string; readonly retryable: boolean; }; export type MaterializerResult = { readonly outcome: "success"; readonly body: string; readonly identity: string; readonly evidence: MaterializerEvidence; } | { readonly outcome: "recoverable"; readonly reason: string; readonly identity: string; readonly evidence: MaterializerEvidence; readonly problem?: MaterializerProblem; } | { readonly outcome: "hard"; readonly identity: string; readonly evidence: MaterializerEvidence; readonly problem: MaterializerProblem; }; export interface HttpMaterializer { readonly id: string; eligible(url: string, ctx: { signal?: AbortSignal; }): Promise | string | null; extract(url: string, opts: { signal?: AbortSignal; }): Promise; } export default class MaterializerRegistry { #private; static current(): MaterializerRegistry; discover(options?: { cwd?: string; packageDirs?: Array<{ dir: string; name: string; }>; }): Promise; materializerFor(id: string): HttpMaterializer | null; } //# sourceMappingURL=Materializer.d.ts.map