/* eslint-disable @typescript-eslint/no-explicit-any */ /// /** * 该文件由 Tailchat 自动生成 * 用于插件的类型声明 * 生成命令: pnpm run plugins:declaration:generate */ /** * Tailchat 通用 */ declare module '@capital/common' { export const useGroupPanelParams: any; /** * 打开模态框 * @deprecated 请从 @capital/component 引入 */ export const openModal: ( content: React.ReactNode, props?: { /** * 是否显示右上角的关闭按钮 * @default false */ closable?: boolean; /** * 遮罩层是否可关闭 */ maskClosable?: boolean; /** * 关闭modal的回调 */ onCloseModal?: () => void; } ) => number; /** * @deprecated 请从 @capital/component 引入 */ export const closeModal: any; /** * @deprecated 请从 @capital/component 引入 */ export const ModalWrapper: any; /** * @deprecated 请从 @capital/component 引入 */ export const useModalContext: any; /** * @deprecated 请从 @capital/component 引入 */ export const openConfirmModal: any; /** * @deprecated 请从 @capital/component 引入 */ export const openReconfirmModal: any; /** * @deprecated 请从 @capital/component 引入 */ export const Loadable: any; export const getGlobalState: any; export const useGlobalSocketEvent: ( eventName: string, callback: (data: T) => void ) => void; export const getJWTUserInfo: () => Promise<{ _id?: string; nickname?: string; email?: string; avatar?: string; }>; export const dataUrlToFile: any; export const urlSearchStringify: any; export const urlSearchParse: any; export const appendUrlSearch: any; export const getServiceWorkerRegistration: any; export const getServiceUrl: () => string; export const getCachedUserInfo: ( userId: string, refetch?: boolean ) => Promise<{ _id: string; email: string; nickname: string; discriminator: string; avatar: string | null; temporary: boolean; }>; export const getCachedConverseInfo: any; export const getCachedBaseGroupInfo: any; export const getCachedUserSettings: any; /** * 本地翻译 * @example * localTrans({'zh-CN': '你好', 'en-US': 'Hello'}); * * @param trans 翻译对象 */ export const localTrans: (trans: Record<'zh-CN' | 'en-US', string>) => string; export const getLanguage: any; export const sharedEvent: any; export const useAsync: Promise>( fn: T, deps?: React.DependencyList ) => { loading: boolean; value?: any; error?: Error }; export const useAsyncFn: Promise>( fn: T, deps?: React.DependencyList ) => [{ loading: boolean; value?: any; error?: Error }, T]; export const useAsyncRefresh: Promise>( fn: T, deps?: React.DependencyList ) => { loading: boolean; value?: any; error?: Error; refresh: () => void }; export const useAsyncRequest: Promise>( fn: T, deps?: React.DependencyList ) => [{ loading: boolean; value?: any }, T]; export const uploadFile: any; export const showToasts: ( message: string, type?: 'info' | 'success' | 'error' | 'warning' ) => void; export const showSuccessToasts: any; export const showErrorToasts: (error: any) => void; export const fetchAvailableServices: any; export const isValidStr: (str: any) => str is string; export const useGroupPanelInfo: any; export const sendMessage: any; export const showMessageTime: any; export const joinArray: any; export const navigate: any; export const useLocation: any; export const useNavigate: any; /** * @deprecated please use createMetaFormSchema from @capital/component */ export const createFastFormSchema: any; /** * @deprecated please use metaFormFieldSchema from @capital/component */ export const fieldSchema: any; export const useCurrentUserInfo: any; export const createPluginRequest: (pluginName: string) => { get: (actionName: string, config?: any) => Promise; post: (actionName: string, data?: any, config?: any) => Promise; }; export const postRequest: any; export const pluginCustomPanel: any; export const regCustomPanel: any; export const pluginGroupPanel: any; export const regGroupPanel: any; export const messageInterpreter: { name?: string; explainMessage: (message: string) => React.ReactNode; }[]; export const regMessageInterpreter: (interpreter: { name?: string; explainMessage: (message: string) => React.ReactNode; }) => void; export const getMessageRender: (message: string) => React.ReactNode; export const regMessageRender: ( render: (message: string) => React.ReactNode ) => void; export const getMessageTextDecorators: any; export const regMessageTextDecorators: any; export const ChatInputActionContextProps: any; export const pluginChatInputActions: any; export const regChatInputAction: any; export const regSocketEventListener: (item: { eventName: string; eventFn: (...args: any[]) => void; }) => void; export const pluginColorScheme: any; export const regPluginColorScheme: any; export const pluginInspectServices: any; export const regInspectService: any; export const pluginMessageExtraParsers: any; export const regMessageExtraParser: any; export const pluginRootRoute: any; export const regPluginRootRoute: any; export const pluginPanelActions: any; export const regPluginPanelAction: ( action: | { name: string; label: string; icon: string; position: 'group'; onClick: (ctx: { groupId: string; panelId: string }) => void; } | { name: string; label: string; icon: string; position: 'dm'; onClick: (ctx: { converseId: string }) => void; } ) => void; export const pluginPermission: any; export const regPluginPermission: (permission: { /** * 权限唯一key, 用于写入数据库 * 如果为插件则权限点应当符合命名规范, 如: plugin.com.msgbyte.github.manage */ key: string; /** * 权限点显示名称 */ title: string; /** * 权限描述 */ desc: string; /** * 是否默认开启 */ default: boolean; /** * 是否依赖其他权限点 */ required?: string[]; }) => void; export const pluginGroupPanelBadges: any; export const regGroupPanelBadge: any; export const pluginGroupTextPanelExtraMenus: any; export const regPluginGroupTextPanelExtraMenu: any; export const pluginUserExtraInfo: any; export const regUserExtraInfo: any; export const pluginSettings: any; export const regPluginSettings: any; export const useGroupIdContext: () => string; export const useGroupPanelContext: () => { groupId: string; panelId: string; } | null; export const useSocketContext: any; } /** * Tailchat 组件 */ declare module '@capital/component' { export const Button: any; export const Checkbox: any; export const Input: any; export const Divider: any; export const Space: any; export const Menu: any; export const Table: any; export const Switch: any; export const Tooltip: any; /** * @link https://ant.design/components/notification-cn/ */ export const notification: any; export const Empty: React.FC< React.PropsWithChildren<{ prefixCls?: string; className?: string; style?: React.CSSProperties; imageStyle?: React.CSSProperties; image?: React.ReactNode; description?: React.ReactNode; }> >; export const TextArea: any; export const Avatar: any; export const SensitiveText: React.FC<{ className?: string; text: string }>; export const Icon: React.FC<{ icon: string } & React.SVGProps>; export const CopyableText: React.FC<{ className?: string; style?: React.CSSProperties; config?: | boolean | { text?: string; onCopy?: (event?: React.MouseEvent) => void; icon?: React.ReactNode; tooltips?: boolean | React.ReactNode; format?: 'text/plain' | 'text/html'; }; }>; export const WebFastForm: any; export const WebMetaForm: any; export const createMetaFormSchema: any; export const metaFormFieldSchema: any; export const Link: any; export const MessageAckContainer: any; export const Image: any; export const IconBtn: React.FC<{ icon: string; className?: string; iconClassName?: string; size?: 'small' | 'middle' | 'large'; shape?: 'circle' | 'square'; title?: string; danger?: boolean; active?: boolean; disabled?: boolean; onClick?: React.MouseEventHandler; }>; export const PillTabs: any; export const PillTabPane: any; export const LoadingSpinner: React.FC<{ tip?: string }>; export const FullModalField: any; export const DefaultFullModalInputEditorRender: any; export const DefaultFullModalTextAreaEditorRender: any; export const openModal: ( content: React.ReactNode, props?: { /** * 是否显示右上角的关闭按钮 * @default false */ closable?: boolean; /** * 遮罩层是否可关闭 */ maskClosable?: boolean; /** * 关闭modal的回调 */ onCloseModal?: () => void; } ) => number; export const closeModal: any; export const ModalWrapper: any; export const useModalContext: any; export const openConfirmModal: any; export const openReconfirmModal: any; export const Loadable: any; export const Loading: React.FC<{ spinning: boolean; className?: string; style?: React.CSSProperties; children?: React.ReactNode; }>; export const LoadingOnFirst: React.FC<{ spinning: boolean; className?: string; style?: React.CSSProperties; children?: React.ReactNode; }>; export const SidebarView: any; export const GroupPanelSelector: any; export const Emoji: any; export const PortalAdd: any; export const PortalRemove: any; export const ErrorBoundary: any; export const UserAvatar: React.FC<{ userId: string; className?: string; style?: React.CSSProperties; size?: 'large' | 'small' | 'default' | number; }>; export const UserName: React.FC<{ userId: string; className?: string; style?: React.CSSProperties; }>; export const Markdown: any; export const Webview: any; export const WebviewKeepAlive: any; }