/// import type { NextRequest } from 'next/server'; import type { WaysPathRoutingConfig } from '@18ways/core/i18n-shared'; import type { WaysRootProps } from '@18ways/react'; import type { WaysDomainConfig } from './next-domains'; export type WaysRouterMode = 'app' | 'path' | 'none'; export type WaysLegacyRouterMode = WaysRouterMode | 'pages'; export type WaysPersistLocaleCookiePolicy = boolean | ((request: NextRequest) => boolean); export type WaysRouteManifest = { localized: string[]; unlocalized: string[]; ambiguous: string[]; }; export type WaysConfig = { apiKey: WaysRootProps['apiKey']; locale?: WaysRootProps['locale']; acceptedLocales?: WaysRootProps['acceptedLocales']; cacheTtl?: WaysRootProps['cacheTtl']; fetcher?: WaysRootProps['fetcher']; messageFormatter?: WaysRootProps['messageFormatter']; suspenseTimeoutMs?: number; _apiUrl?: WaysRootProps['_apiUrl']; _requestInitDecorator?: WaysRootProps['_requestInitDecorator']; } & { baseLocale: string; router?: WaysLegacyRouterMode; domains?: WaysDomainConfig[]; localeParamName?: string; persistLocaleCookie?: WaysPersistLocaleCookiePolicy; requestOrigin?: string; pathRouting?: WaysPathRoutingConfig; routeManifest?: WaysRouteManifest; }; export type WaysPublicConfig = Omit & { baseLocale: string; router: WaysRouterMode; localeParamName: string; pathRouting?: WaysPathRoutingConfig; routeManifest?: WaysRouteManifest; persistLocaleCookie?: boolean; };