import type { ValidateAndDecodeAccessToken } from "./types"; export type AnyRequest = AnyRequest.Unified | AnyRequest.RequestLike | AnyRequest.IncomingMessageLike | AnyRequest.HonoRequestLike | AnyRequest.FastifyRequestLike; export declare namespace AnyRequest { type Unified = { type: "unified"; method: string; pseudoHeaders: { ":scheme": string; ":authority": string; ":path": string; }; headers: Record<"Authorization" | "DPoP" | "Forwarded" | "X-Forwarded-Proto" | "X-Forwarded-Host", string | undefined>; }; type IncomingMessageLike = { headers: { [key in string]: string | string[] | undefined; }; method?: string; url?: string; socket: Record; }; type RequestLike = { url: string; method: string; headers: { get: (name: string) => string | null; }; }; type HonoRequestLike = { raw: RequestLike; }; type FastifyRequestLike = { raw: IncomingMessageLike; }; } export type RequestAuthContext = RequestAuthContext.Success | RequestAuthContext.Errored; export declare namespace RequestAuthContext { type Success = { isWellFormed: true; accessTokenAndMetadata: ValidateAndDecodeAccessToken.Params; }; type Errored = { isWellFormed: false; debugErrorMessage: string; }; } export declare function extractRequestAuthContext(params: { request: AnyRequest; trustProxy: boolean; }): RequestAuthContext | undefined;