import type { UiIcons } from '../Icons';
export interface TranslationInputStrings {
    acceptButtonLabel: string;
    cancelButtonLabel: string;
    i18nEntryExistsTooltip: string;
    i18nKeyMissingTooltip: string;
    i18nKeyMissingDescription: string;
    i18nValueMissingTooltip: string;
    i18nValueMissingDescription: string;
    i18nReplaceWithExistingTooltip: string;
    i18nReplaceWithExistingDescription: string;
    i18nEntryExistsInputTooltip: string;
}
export declare enum TranslationKeyGenerator {
    CamelCase = "CamelCase",
    PascalCase = "PascalCase"
}
export declare enum TranslationTextPattern {
    DoubleBracketReplace = "DoubleBracketReplace",
    SingleBracketBinding = "SingleBracketBinding"
}
export interface TranslationEntryValue {
    value: string;
}
export interface TranslationEntry {
    key: TranslationEntryValue;
    value: TranslationEntryValue;
}
export type I18nBundle<T extends TranslationEntry = TranslationEntry> = Record<string, T[]>;
export interface UITranslationProps<T extends TranslationEntry> {
    value?: string;
    id: string;
    disabled?: boolean;
    onShowExistingEntry?: (entry: T) => void;
    onCreateNewEntry?: (entry: TranslationEntry) => void;
    busy?: UILoadButtonBusyProps;
    strings?: TranslationInputStrings;
}
export interface UILoadButtonBusyProps {
    busy?: boolean;
    useMinWaitingTime?: boolean | number;
}
export declare enum SuggestValueType {
    Existing = "Existing",
    Update = "Update",
    New = "New"
}
export type TranslationSuggestValue<T extends TranslationEntry> = TranslationSuggestValueNew | TranslationSuggestValueExisting<T>;
interface TranslationSuggestValueBase {
    icon?: UiIcons;
    i18n?: string;
}
export interface TranslationSuggestValueNew extends TranslationSuggestValueBase {
    entry: TranslationEntry;
    type: SuggestValueType.New;
}
export interface TranslationSuggestValueExisting<T extends TranslationEntry> extends TranslationSuggestValueBase {
    entry: T;
    type: SuggestValueType.Existing | SuggestValueType.Update;
}
export interface TranslationSuggest<T extends TranslationEntry> {
    tooltip: string;
    message?: React.ReactElement;
    suggest?: TranslationSuggestValue<T>;
}
export {};
//# sourceMappingURL=UITranslationButton.types.d.ts.map