import { Options } from './options.js';
import * as astro from 'astro';
import 'sitemap';
import 'astro/zod';

type I18nextConfig = {
    namespaces: Array<string>;
    defaultNamespace: string;
    resources: Record<string, Record<string, unknown>>;
};
type Route = {
    locale: string;
    params: Array<string>;
    pattern: string;
    injectedRoute: astro.InjectedRoute;
};
type I18nConfig = {
    clientOptions: Options["client"];
    translations: {
        initialized: boolean;
        i18nextConfig: I18nextConfig;
    };
    data: {
        locale: string;
        locales: Array<string>;
        defaultLocale: string;
    };
    paths: {
        pathname: string;
        routes: Array<Route>;
        dynamicParams: Record<string, Record<string, string>>;
        strategy: Options["strategy"];
    };
};

export type { I18nConfig, I18nextConfig, Route };
