import type { Fetcher } from '../adapters/Fetcher'; import type { Identity } from '../adapters/IdentityProvider'; import type { Resource } from '../adapters/ResourceProvider'; import type { PipelineContext } from '../context'; import type { SurfaceDecisionResponse } from '../types'; export type FetchSurfaceDecisionsArgs = { identity: Identity; url: string; clientMetadata: Record; resource: Resource; userAgent?: string | undefined; referer?: string | undefined; cookies?: Record | undefined; originStatus: number; }; export type FetchSurfaceDecisionsFailureReason = 'request-failed' | 'invalid-json' | 'api-error' | 'http-error' | 'invalid-response'; export type FetchSurfaceDecisionsResult = { ok: true; data: SurfaceDecisionResponse; } | { ok: false; reason: FetchSurfaceDecisionsFailureReason; error: unknown; status?: number; statusCode?: number; }; export default function fetchSurfaceDecisions(ctx: PipelineContext, { identity, url, clientMetadata, resource, userAgent, referer, cookies, originStatus }: FetchSurfaceDecisionsArgs, apiFetcher: Fetcher): Promise;