import type { TdConfigProviderProps } from 'tdesign-vue-next'; import type { UseAgentChatOptions } from '../../hooks/useAgentChat'; import type { QdDictBaseOptions } from '../../hooks/useDict'; import type { QdAvatarBaseOptions } from '../../hooks/useUserAvatar'; import type { QdDialogProps } from '../dialog'; import type { QdFormProps } from '../form/types'; import type { QdOfficePdfProps } from '../office'; import type { QdOrgListByIdsOptions, QdOrgSelectProps } from '../org'; import type { QdServiceTablePaginationConfig, QdServiceTableProps } from '../service/table/types'; import type { QdTinymceProps } from '../tinymce'; import type { QdUploadProps } from '../upload'; export interface QdUser { roles?: string[]; permissions?: string[]; } export interface QdConfigProviderProps { locale?: string; user?: QdUser; dict?: QdDictBaseOptions; upload?: Pick; avatar?: QdAvatarBaseOptions; agentChat?: Pick; org?: { search?: Pick; select?: Partial>; listOrgByIds?: QdOrgListByIdsOptions; }; office?: { [K in keyof Pick as `pdf${Capitalize}`]?: string; }; tinymce?: Pick; globalConfig?: Omit, 'upload' | 'chat' | 'form' | 'table'> & { loading?: { text?: string; }; serviceSelect?: { createText?: string; }; timeFormat?: { seconds?: string; minutes?: string; hours?: string; days?: string; }; crud?: { emptyText?: string; searchText?: string; resetText?: string; addText?: string; viewText?: string; editText?: string; deleteText?: string; batchDeleteText?: string; importText?: string; operationText?: string; closeText?: string; deleteSuccessText?: string; deleteHasChildrenText?: string; operationSuccessText?: string; deleteWrapperBodyText?: string; collapseSearchText?: string; expandSearchText?: string; hideSearchText?: string; showSearchText?: string; refreshText?: string; collapseTreeText?: string; expandTreeText?: string; columnControllerText?: string; }; modal?: { systemPromptText?: string; }; upload?: NonNullable['upload'] & { fileFormatNotSupportedMessage?: [string, string]; maxUploadMessage?: [string, string]; sameNameMessage?: string; fileSizeExceedsLimit?: string; fileUploadFailed?: string; fileUploadTimeout?: string; viewFileText?: string; }; chat?: NonNullable['chat'] & { failedObtainSessionIdMessage?: string; failedObtainUrlMessage?: string; failedObtainAgentInfoMessage?: string; apiUnknownErrorMessage?: string; failedParseContentMessage?: string; parsedContentEmptyMessage?: string; agentProcessingTimeoutMessage?: string; }; office?: { prevPage?: string; nextPage?: string; zoomOut?: string; zoomIn?: string; cancelAdaptiveView?: string; adaptiveView?: string; rotateLeft?: string; rotateRight?: string; }; dialogTableSelect?: { addText?: string; addConfirmText?: string; addCancelText?: string; quoteText?: string; }; importDialog?: { fileSupport?: [string, string]; clickDownloadTplText?: string; downloadTplText?: string; successText?: string; failText?: string; updateSupportText?: string; }; form?: Omit['form']>, 'size'> & { size?: QdFormProps['size']; submitFailed?: string; selectText?: string; orgSelectText?: string; uploadText?: string; inputText?: string; }; table?: Omit['table']>, 'size'> & { size?: QdServiceTableProps['size']; bordered?: boolean; pagination?: QdServiceTablePaginationConfig; filterItemInputPlaceholder?: string; filterItemSearchPlaceholder?: string; filterItemAllText?: string; filterItemInvertText?: string; filterItemBlankText?: string; }; wrapper?: { attach?: QdDialogProps['attach']; }; columnsController?: { titleText?: string; columnNameText?: string; widthText?: string; operationText?: string; selectionColumnText?: string; moveUpText?: string; moveDownText?: string; pinLeftText?: string; pinRightText?: string; unpinText?: string; widthHelp?: string; pinLeftHelp?: string; pinRightHelp?: string; resetText?: string; }; tinymce?: { uploadNotConfigured?: string; uploadFailed?: string; fontFormats?: Record; }; multiFileViewer?: { emptyText?: string; defaultFileName?: string; closeText?: string; }; steps?: { indicatorPrefix?: string; indicatorSuffix?: string; }; }; }