export type FetchFn = typeof fetch; export type RenderFn = (url: string, opts: { timeoutMs: number; signal: AbortSignal; requestGuard?: (url: string) => Promise; }) => Promise; export interface RenderedPage { html: string; finalUrl: string; httpStatus: number | null; } export interface ExtractedContent { title: string; markdown: string; textLength: number; usedFallback: boolean; } export interface SearchResult { title: string; url: string; description: string; } export interface SearchBackend { readonly name: string; search(query: string, opts: { limit: number; timeoutMs: number; signal: AbortSignal; }): Promise; }