import type { NextRequest } from 'next/server'; import { NextResponse } from 'next/server'; import { ServiceAccount } from '../auth/credential.js'; import { InvalidTokenReason } from '../auth/error.js'; import { Tokens } from '../auth/index.js'; import { SetAuthCookiesOptions } from './cookies/index.js'; export interface CreateAuthMiddlewareOptions extends SetAuthCookiesOptions { loginPath: string; logoutPath: string; refreshTokenPath?: string; experimental_createAnonymousUserIfUserNotFound?: boolean; } interface RedirectToPathOptions { shouldClearSearchParams: boolean; } export declare function redirectToPath(request: NextRequest, path: string, options?: RedirectToPathOptions): NextResponse; interface RedirectToHomeOptions { path: string; } export declare function redirectToHome(request: NextRequest, options?: RedirectToHomeOptions): NextResponse; export type Path = string | RegExp; export type PublicPath = Path; export interface RedirectToLoginOptions { path: string; redirectParamKeyName?: string; publicPaths?: Path[]; privatePaths?: Path[]; } export declare function redirectToLogin(request: NextRequest, options?: RedirectToLoginOptions): NextResponse; export declare function createAuthMiddlewareResponse(request: NextRequest, options: CreateAuthMiddlewareOptions): Promise; export type HandleInvalidToken = (reason: InvalidTokenReason) => Promise; export type HandleValidToken = (tokens: Tokens, headers: Headers) => Promise; export type HandleError = (e: unknown) => Promise; export interface AuthMiddlewareOptions extends CreateAuthMiddlewareOptions { serviceAccount?: ServiceAccount; apiKey: string; debug?: boolean; headers?: Headers; checkRevoked?: boolean; handleInvalidToken?: HandleInvalidToken; handleValidToken?: HandleValidToken; handleError?: HandleError; enableTokenRefreshOnExpiredKidHeader?: boolean; } export declare function authMiddleware(request: NextRequest, middlewareOptions: AuthMiddlewareOptions): Promise; export {};