///
import { UiProps } from '@tolgee/core';
import { TolgeeFormat } from '@tginternal/editor';
import { SubmitKind } from './tools';
import { StateType } from '../State/translationStates';
import { HttpError } from '../../client/HttpError';
type FormTranslations = {
[key: string]: {
value: TolgeeFormat;
state: StateType;
};
};
type DialogProps = {
keyName: string;
defaultValue: string;
onClose: () => void;
uiProps: UiProps;
fallbackNamespaces: string[];
namespace: string;
children: React.ReactNode;
};
export declare const DialogProvider: ({ children, ...props }: import("react").PropsWithChildren) => import("react/jsx-runtime").JSX.Element, useDialogActions: () => {
onInputChange: (key: string, value: TolgeeFormat) => void;
onStateChange: (key: string, value: StateType) => void;
handleUploadImages: (files: File[]) => Promise;
handleTakeScreenshot: () => void;
handleRemoveScreenshot: (id: number) => void;
onSubmit: () => Promise;
commitToPage: (translations: [string, string][]) => void;
reloadKeepingEdits: ({ except }?: {
except?: string;
}) => Promise;
onClose: () => void;
onSelectedLanguagesChange: (languages: string[]) => void;
setContainer: import("react").Dispatch>;
setUseBrowserWindow: import("react").Dispatch>;
setScreenshotDetail: import("react").Dispatch>;
setSelectedNs: import("react").Dispatch>;
setTags: import("react").Dispatch>;
setIsPlural: import("react").Dispatch>;
setPluralArgName: import("react").Dispatch>;
setMaxCharLimit: import("react").Dispatch>;
}, useDialogContext: (selector: (state: {
readonly input: string;
readonly fallbackNamespaces: string[];
readonly uiProps: UiProps;
readonly selectedNs: string;
readonly loading: boolean;
readonly saving: boolean;
readonly success: false | SubmitKind;
readonly error: Error;
readonly availableLanguages: {
base: boolean;
flagEmoji?: string;
id: number;
name: string;
originalName?: string;
tag: string;
}[];
readonly selectedLanguages: string[];
readonly formDisabled: boolean;
readonly readOnly: boolean;
readonly keyData: {
branch?: string;
contextPresent: boolean;
createdAt: number;
keyDescription?: string;
keyId: number;
keyIsPlural: boolean;
keyMaxCharLimit?: number;
keyName: string;
keyNamespace?: string;
keyNamespaceId?: number;
keyPluralArgName?: string;
keyTags: {
id: number;
name: string;
}[];
screenshotCount: number;
screenshots?: {
createdAt?: string;
fileUrl: string;
filename: string;
height?: number;
id: number;
keyReferences: {
keyId: number;
keyName: string;
keyNamespace?: string;
originalText?: string;
position?: {
height: number;
width: number;
x: number;
y: number;
};
}[];
location?: string;
middleSized?: string;
middleSizedUrl?: string;
thumbnail: string;
thumbnailUrl: string;
width?: number;
}[];
tasks?: {
done: boolean;
languageId: number;
languageTag: string;
number: number;
type: "TRANSLATE" | "REVIEW";
userAssigned: boolean;
}[];
translations: {
[key: string]: {
activeSuggestionCount: number;
auto: boolean;
commentCount: number;
fromTranslationMemory: boolean;
id?: number;
labels?: {
color: string;
description?: string;
id: number;
name: string;
}[];
mtProvider?: "GOOGLE" | "AWS" | "DEEPL" | "AZURE" | "BAIDU" | "PROMPT";
outdated: boolean;
qaChecksStale: boolean;
qaIssueCount: number;
qaIssues?: {
id: number;
message: "qa_empty_translation" | "qa_missing_plural_category" | "qa_check_failed" | "qa_spaces_leading_added" | "qa_spaces_leading_removed" | "qa_spaces_trailing_added" | "qa_spaces_trailing_removed" | "qa_spaces_doubled" | "qa_spaces_non_breaking_added" | "qa_spaces_non_breaking_removed" | "qa_punctuation_add" | "qa_punctuation_remove" | "qa_punctuation_replace" | "qa_case_capitalize" | "qa_case_lowercase" | "qa_numbers_missing" | "qa_leading_spaces" | "qa_trailing_spaces" | "qa_leading_newlines" | "qa_trailing_newlines" | "qa_newlines_missing" | "qa_newlines_extra" | "qa_newlines_too_many_sections" | "qa_newlines_too_few_sections" | "qa_brackets_missing" | "qa_brackets_extra" | "qa_brackets_unclosed" | "qa_brackets_unmatched_close" | "qa_special_char_missing" | "qa_special_char_added" | "qa_url_missing" | "qa_url_extra" | "qa_url_replace" | "qa_repeated_word" | "qa_placeholders_missing" | "qa_placeholders_extra" | "qa_placeholders_replace" | "qa_html_tag_missing" | "qa_html_tag_extra" | "qa_html_unclosed_tag" | "qa_html_unopened_tag" | "qa_icu_syntax_error" | "qa_spelling_error" | "qa_grammar_error" | "qa_key_length_limit_exceeded";
params?: {
[key: string]: string;
};
pluralVariant?: string;
positionEnd?: number;
positionStart?: number;
replacement?: string;
state: "OPEN" | "IGNORED";
type: "EMPTY_TRANSLATION" | "MISSING_PLURAL_CATEGORIES" | "CHARACTER_CASE_MISMATCH" | "REPEATED_WORDS" | "PUNCTUATION_MISMATCH" | "TRIM_CHECK" | "SPACES_MISMATCH" | "UNMATCHED_NEWLINES" | "MISSING_NUMBERS" | "SPECIAL_CHARACTER_MISMATCH" | "BRACKETS_MISMATCH" | "BRACKETS_UNBALANCED" | "SPELLING" | "GRAMMAR" | "KEY_LENGTH_LIMIT" | "DIFFERENT_URLS" | "INCONSISTENT_PLACEHOLDERS" | "INCONSISTENT_HTML" | "HTML_SYNTAX" | "ICU_SYNTAX";
}[];
state: "DISABLED" | "UNTRANSLATED" | "TRANSLATED" | "REVIEWED";
suggestions?: {
author: {
avatar?: {
large: string;
thumbnail: string;
};
deleted: boolean;
id: number;
name?: string;
username: string;
};
id: number;
isPlural: boolean;
state: "ACTIVE" | "ACCEPTED" | "DECLINED";
translation?: string;
}[];
text?: string;
totalSuggestionCount: number;
unresolvedCommentCount: number;
};
};
};
readonly translationsForm: FormTranslations;
readonly container: Element;
readonly useBrowserWindow: boolean;
readonly takingScreenshot: boolean;
readonly screenshotsUploading: boolean;
readonly screenshots: import("./useGallery").ScreenshotInterface[];
readonly screenshotDetail: import("./useGallery").ScreenshotInterface;
readonly linkToPlatform: string;
readonly keyExists: boolean;
readonly maxCharLimit: number;
readonly tags: string[];
readonly permissions: any;
readonly canTakeScreenshots: boolean;
readonly isPlural: boolean;
readonly _pluralArgName: string;
readonly pluralArgName: string;
readonly pluralsSupported: boolean;
readonly icuPlaceholders: boolean;
readonly submitError: HttpError;
readonly suggestionErrors: Record;
readonly clearedSuggestFields: string[];
readonly busy: boolean;
readonly dispositions: Record;
readonly credentialBlocksField: Record;
readonly viaExtension: boolean;
readonly suggestOnly: boolean;
readonly submitKind: SubmitKind;
readonly nothingToSuggest: boolean;
readonly filterTagMissing: boolean;
readonly isOverCharLimit: boolean;
}) => SelectorReturn) => SelectorReturn;
export {};