import type { Locale } from "@intl-t/locales"; import { match } from "@intl-t/utils/match"; import { ResolveConfig } from "@intl-t/utils/resolvers"; import { I18NDomains } from "next/dist/server/config-shared"; import { MiddlewareConfig as MG, NextFetchEvent, NextRequest, NextResponse } from "next/server"; export type Middleware = (req: NextRequest, ev?: NextFetchEvent, res?: NextResponse) => Response | Promise | void; export type ComposedMiddleware = (req: NextRequest, ev: NextFetchEvent | undefined, res: NextResponse) => Response | Promise | void; export type MiddlewareFactory = (middleware: ComposedMiddleware) => Middleware; export interface MiddlewareConfig extends MG, ResolveConfig { pathBase?: "always-default" | "detect-default" | "detect-latest" | "always-detect"; strategy?: "param" | "request"; detectLocale?: false | string | string[] | ((req: NextRequest) => string[] | string); domains?: I18NDomains; config?: MG; middleware?: typeof middleware; withMiddleware?: MiddlewareFactory; match?: typeof match; } export declare const middlewareConfig: MG; export { middlewareConfig as config }; export declare function detect(req: NextRequest, domains?: I18NDomains): string[]; export declare function createMiddleware(settings: MiddlewareConfig): typeof middleware & MiddlewareConfig & MG; export declare function middleware(req: NextRequest, ev?: NextFetchEvent, res?: NextResponse): NextResponse; export declare const i18nMiddleware: typeof middleware; export declare function withMiddleware(middleware: ComposedMiddleware): (req: NextRequest, ev?: NextFetchEvent, res?: NextResponse) => void | Response | Promise; export { withMiddleware as withI18nMiddleware };