import {
    type ReactElement,
    type ReactNode
} from "react";
import type ITextProps from "../components/text/type";

export type LocalizeType = {
    initialSelectedLocale?: keyof NCoreUIKit.LocaleKey;
    projectLocales?: NCoreUIKit.Locales;
};

export type LocaleType = "en-US" | "tr-TR";

export type LocalizeContextStateType = Partial<LocalizeContextType>;

export type LocalizeContextType = {
    localizeWithObject: (
        translation: keyof NCoreUIKit.Translation,
        parameters?: Array<string | ReactNode | ReactElement>,
        props?: Array<ITextProps>
    ) => string;
    rruleConfig: NCoreUIKit.GeneratedRRuleConfigsForReturn;
    localeKeys: Array<keyof NCoreUIKit.LocaleKey>;
    localize: (
        translation: keyof NCoreUIKit.Translation,
        parameters?: Array<string | number>
    ) => string;
    activeLocale: keyof NCoreUIKit.LocaleKey;
    translations: NCoreUIKit.Translation;
    isRTL: boolean;
};
