import type { VextMiddleware } from "../types/middleware.js"; import type { VextRequest } from "../types/request.js"; import type { VextAuthContext, VextAuthContextSnapshot, VextAuthErrorCode, VextAuthMiddlewareOptions, VextAuthRequirement, VextAuthResult } from "../types/auth.js"; type AuthRouteOption = false | true | VextAuthRequirement | undefined; export type { VextAuthCan, VextAuthAssert, VextAuthContext, VextAuthContextSnapshot, VextAuthErrorCode, VextAuthMiddlewareOptions, VextAuthRequirement, VextAuthResult, VextAuthSource, VextPermissionRequirement, } from "../types/auth.js"; /** * Creates the default anonymous auth context present on every request. */ export declare function createAnonymousAuthContext(): VextAuthContext; /** * Creates an authenticated context from a user provider result. */ export declare function createAuthContext(result?: VextAuthResult | null | false, defaults?: Pick): VextAuthContext; /** * Creates an unauthenticated context with a stable auth error code. */ export declare function createInvalidAuthContext(error?: VextAuthErrorCode, defaults?: Pick): VextAuthContext; /** * Assigns req.auth and syncs a safe snapshot into requestContext if enabled. */ export declare function setRequestAuth(req: VextRequest, authOrResult?: VextAuthContext | VextAuthResult | null | false): VextAuthContext; /** * Ensures req.auth exists for all requests, including public and 404 paths. */ export declare function createAuthContextMiddleware(): VextMiddleware; /** * Creates an authentication middleware. It only identifies the request; * route protection is handled by RouteOptions.auth. */ export declare function createAuthMiddleware(options: VextAuthMiddlewareOptions): VextMiddleware; export declare const auth: typeof createAuthMiddleware; export declare function normalizeAuthRequirement(value: AuthRouteOption): VextAuthRequirement | null; export declare function buildRouteAuthGuardMiddleware(value: AuthRouteOption): VextMiddleware | null; export declare function assertRouteAuth(req: VextRequest, requirementInput: VextAuthRequirement): Promise; export declare function authRequirementToOpenApiSecurity(value: AuthRouteOption): Array>; export declare function createAuthContextSnapshot(authContext: VextAuthContext): VextAuthContextSnapshot;