/** * Locale detection for browser and SSR environments. * * Detects user's preferred locale from multiple sources: * 1. URL parameter (?lang=pt-BR) * 2. Cookie (locale cookie) * 3. Browser Accept-Language header * 4. Default locale fallback * * @module i18n/detector */ import type { LocaleDetector } from './types.js'; /** * Browser locale detector. * * Detection order: * 1. URL parameter (?lang=pt-BR) * 2. localStorage (persisted locale) * 3. Cookie (persisted locale) * 4. navigator.language * 5. navigator.languages * 6. Default locale * * @example * ```typescript * const detector = createBrowserLocaleDetector({ * supportedLocales: ['en', 'pt-BR', 'es'], * defaultLocale: 'en', * urlParam: 'lang', * cookieName: 'locale' * }); * * const locale = detector.detect(); // 'pt-BR' * ``` */ export declare function createBrowserLocaleDetector(config: { supportedLocales: string[]; defaultLocale: string; urlParam?: string; cookieName?: string; storageKey?: string; }): LocaleDetector; /** * SSR locale detector. * * Detection order: * 1. URL parameter (?lang=pt-BR) * 2. Cookie (persisted locale) * 3. Accept-Language header * 4. Default locale * * @example * ```typescript * // In SvelteKit load function * export async function load({ url, request }) { * const detector = createSSRLocaleDetector({ * supportedLocales: ['en', 'pt-BR', 'es'], * defaultLocale: 'en', * url: url.toString(), * cookies: request.headers.get('cookie') ?? '', * acceptLanguage: request.headers.get('accept-language') ?? '' * }); * * const locale = detector.detect(); * return { locale }; * } * ``` */ export declare function createSSRLocaleDetector(config: { supportedLocales: string[]; defaultLocale: string; url: string; cookies: string; acceptLanguage: string; urlParam?: string; cookieName?: string; }): LocaleDetector; /** * Static locale detector (always returns same locale). * * Useful for testing or when locale is hardcoded. * * @example * ```typescript * const detector = createStaticLocaleDetector('pt-BR', ['en', 'pt-BR', 'es']); * detector.detect(); // Always returns 'pt-BR' * ``` */ export declare function createStaticLocaleDetector(locale: string, supportedLocales: string[]): LocaleDetector; //# sourceMappingURL=detector.d.ts.map