import { JsonValue } from "../contracts/json.js"; import { type BetterPortalObservability, type BetterPortalRemoteTraceContext, type HttpOutcomeDiagnostic, type ObservabilityAttributes } from "../contracts/observability.js"; import { type HeaderMap } from "./http.js"; import { type BetterPortalRequestPropagation } from "./traceContext.js"; import { type NegotiatedViewResponse } from "./view.js"; export type BetterPortalEvent = import("h3").H3Event; export type BetterPortalH3App = import("h3").H3; type BetterPortalCorsOptions = import("h3").CorsOptions; export interface BetterPortalAppOptions { createRequestObservability?: (name: string, attributes: ObservabilityAttributes, parent?: BetterPortalRemoteTraceContext) => BetterPortalObservability; } export declare function eventObservability(event: BetterPortalEvent): BetterPortalObservability | undefined; export declare function eventSessionId(event: BetterPortalEvent): string | undefined; export declare function eventTracePropagation(event: BetterPortalEvent): BetterPortalRequestPropagation; export declare function annotateHttpOutcome(event: BetterPortalEvent, diagnostic: HttpOutcomeDiagnostic): void; export declare function annotateCoreHttpOutcome(event: BetterPortalEvent, diagnostic: HttpOutcomeDiagnostic): void; export declare function ensureCoreHttpOutcome(event: BetterPortalEvent, diagnostic: HttpOutcomeDiagnostic): void; export declare function withHttpOutcome(response: Response, diagnostic: HttpOutcomeDiagnostic): Response; export declare function withCoreHttpOutcome(response: Response, diagnostic: HttpOutcomeDiagnostic): Response; /** * The direct socket peer IP of the request - i.e. NOT derived from * X-Forwarded-For. Use this to decide whether a request actually arrived from a * trusted upstream proxy before honouring any proxy-supplied headers. */ export declare function getEventPeerIp(event: BetterPortalEvent): string | undefined; export declare function createBetterPortalApp(options?: BetterPortalAppOptions): BetterPortalH3App; export declare function createBetterPortalNodeHandler(app: BetterPortalH3App): import("h3").NodeHandler; export declare function eventHeaders(event: BetterPortalEvent): HeaderMap; export declare function acceptHeaderFromEvent(event: BetterPortalEvent): string | undefined; export declare function jsonResponse(body: JsonValue, status?: number, headers?: HeadersInit): Response; export declare function htmlResponse(body: string, status?: number, contentType?: string, headers?: HeadersInit): Response; export declare function negotiatedResponseToWebResponse(negotiated: NegotiatedViewResponse): Response; export declare function handleCorsRequest(event: BetterPortalEvent, options: BetterPortalCorsOptions): Response | false; export declare function withObservedEvent(event: BetterPortalEvent, observability: BetterPortalObservability, name: string, handler: (event: BetterPortalEvent, span: BetterPortalObservability) => Promise | T, attributes?: ObservabilityAttributes): Promise; export {}; //# sourceMappingURL=h3.d.ts.map