type FarmImageFormat = "image/avif" | "image/webp"; type FarmImageProvider = "auto" | "node" | "cloudflare" | "none"; interface FarmImageRemotePattern { protocol?: "http" | "https"; hostname: string; port?: string; pathname?: string; search?: string; } interface FarmImageLocalPattern { pathname: string; search?: string; } interface FarmImageConfig { /** Runtime optimizer. Auto selects Cloudflare Images on Cloudflare and Sharp elsewhere. */ provider?: FarmImageProvider; /** Public optimizer endpoint. */ path?: string; /** @deprecated Prefer remotePatterns, which also restricts protocol, path, port, and query. */ domains?: readonly string[]; remotePatterns?: readonly FarmImageRemotePattern[]; localPatterns?: readonly FarmImageLocalPattern[]; deviceSizes?: readonly number[]; imageSizes?: readonly number[]; qualities?: readonly number[]; formats?: readonly FarmImageFormat[]; minimumCacheTTL?: number; maximumResponseBody?: number | string; maximumRedirects?: number; dangerouslyAllowSVG?: boolean; dangerouslyAllowLocalIP?: boolean; } interface ResolvedFarmImageConfig { provider: FarmImageProvider; path: string; domains: readonly string[]; remotePatterns: readonly FarmImageRemotePattern[]; localPatterns: readonly FarmImageLocalPattern[]; deviceSizes: readonly number[]; imageSizes: readonly number[]; qualities: readonly number[]; formats: readonly FarmImageFormat[]; minimumCacheTTL: number; maximumResponseBody: number; maximumRedirects: number; dangerouslyAllowSVG: boolean; dangerouslyAllowLocalIP: boolean; } export type { FarmImageConfig as F, ResolvedFarmImageConfig as R, FarmImageFormat as a, FarmImageLocalPattern as b, FarmImageProvider as c, FarmImageRemotePattern as d };