import type { MessageRouting } from "@/components/Providers/store"; import { type VisibleBlockItem } from "@/components/TemplateEditor/store"; import type { TextMenuConfig } from "@/components/ui/TextMenu/config"; import type { TiptapDoc } from "@/lib/utils"; import type { ChannelType } from "@/store"; import type { ElementalNode } from "@/types/elemental.types"; import type { Node } from "@tiptap/pm/model"; import type { AnyExtension, Editor } from "@tiptap/react"; import React, { type HTMLAttributes } from "react"; import type { TemplateEditorProps } from "../../TemplateEditor"; type UniqueIdentifier = string | number; export declare const defaultMSTeamsContent: ElementalNode[]; export declare const MSTeamsEditorContent: ({ value }: { value?: TiptapDoc; }) => null; export interface MSTeamsRenderProps { content: TiptapDoc; extensions: AnyExtension[]; editable: boolean; autofocus: boolean; onUpdate: ({ editor }: { editor: Editor; }) => void; items: { Sidebar: VisibleBlockItem[]; Editor: UniqueIdentifier[]; }; selectedNode: Node | null; msteamsEditor: Editor | null; textMenuConfig: TextMenuConfig; } export interface MSTeamsProps extends Pick, Omit, "value" | "onChange"> { readOnly?: boolean; headerRenderer?: ({ hidePublish, channels, routing, }: { hidePublish?: boolean; channels?: ChannelType[]; routing?: MessageRouting; }) => React.ReactNode; render?: (props: MSTeamsRenderProps) => React.ReactNode; } /** * Get text menu configuration for an MS Teams node based on selection state * This function applies MS Teams-specific constraints while respecting text selection */ export declare const getTextMenuConfigForMSTeamsNode: (nodeName: string, hasTextSelection?: boolean) => TextMenuConfig; export declare const MSTeams: React.MemoExoticComponent>>; export {};