import type { Editor as TipTapEditor, Range } from "@tiptap/core";
import { type EditorProviderProps as TiptapEditorProviderProps } from "@tiptap/react";
export type { Editor as TipTapEditor, JSONContent } from "@tiptap/react";
import { type SuggestionOptions } from "@tiptap/suggestion";
import { type LucideIcon, type LucideProps } from "lucide-react";
import type { HTMLAttributes, ReactNode } from "react";
export interface SuggestionItem {
    title: string;
    description: string;
    icon: LucideIcon;
    searchTerms: string[];
    command: (props: {
        editor: TipTapEditor;
        range: Range;
    }) => void;
}
export declare const defaultSlashSuggestions: SuggestionOptions<SuggestionItem>["items"];
export type EditorProviderProps = TiptapEditorProviderProps & {
    className?: string;
    limit?: number;
    placeholder?: string;
};
export declare const Editor: ({ className, extensions, limit, placeholder, ...props }: EditorProviderProps) => import("react/jsx-runtime").JSX.Element;
type EditorButtonProps = {
    name: string;
    isActive: () => boolean;
    command: () => void;
    icon: LucideIcon | ((props: LucideProps) => ReactNode);
    hideName?: boolean;
};
export type EditorClearFormattingProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorClearFormatting: ({ hideName, }: EditorClearFormattingProps) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeTextProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeText: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeHeading1Props = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeHeading1: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeHeading2Props = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeHeading2: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeHeading3Props = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeHeading3: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeBulletListProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeBulletList: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeOrderedListProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeOrderedList: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeTaskListProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeTaskList: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeQuoteProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeQuote: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeCodeProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeCode: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorNodeTableProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorNodeTable: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorSelectorProps = HTMLAttributes<HTMLDivElement> & {
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    title: string;
};
export declare const EditorSelector: ({ open, onOpenChange, title, className, children, ...props }: EditorSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatBoldProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatBold: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatItalicProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatItalic: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatStrikeProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatStrike: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatCodeProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatCode: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatSubscriptProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatSubscript: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatSuperscriptProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatSuperscript: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorFormatUnderlineProps = Pick<EditorButtonProps, "hideName">;
export declare const EditorFormatUnderline: ({ hideName, }: Pick<EditorButtonProps, "hideName">) => import("react/jsx-runtime").JSX.Element | null;
export type EditorLinkSelectorProps = {
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
};
export declare const EditorLinkSelector: ({ open, onOpenChange, }: EditorLinkSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
export type EditorTableMenuProps = {
    children: ReactNode;
};
export declare const EditorTableMenu: ({ children }: EditorTableMenuProps) => import("react/jsx-runtime").JSX.Element | null;
export type EditorTableGlobalMenuProps = {
    children: ReactNode;
};
export declare const EditorTableGlobalMenu: ({ children, }: EditorTableGlobalMenuProps) => import("react/jsx-runtime").JSX.Element;
export type EditorTableColumnMenuProps = {
    children: ReactNode;
};
export declare const EditorTableColumnMenu: ({ children, }: EditorTableColumnMenuProps) => import("react/jsx-runtime").JSX.Element;
export type EditorTableRowMenuProps = {
    children: ReactNode;
};
export declare const EditorTableRowMenu: ({ children }: EditorTableRowMenuProps) => import("react/jsx-runtime").JSX.Element;
export declare const EditorTableColumnBefore: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableColumnAfter: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableRowBefore: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableRowAfter: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableColumnDelete: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableRowDelete: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableHeaderColumnToggle: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableHeaderRowToggle: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableDelete: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableMergeCells: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableSplitCell: () => import("react/jsx-runtime").JSX.Element | null;
export declare const EditorTableFix: () => import("react/jsx-runtime").JSX.Element | null;
export type EditorCharacterCountProps = {
    children: ReactNode;
    className?: string;
};
export declare const EditorCharacterCount: {
    Characters({ children, className }: EditorCharacterCountProps): import("react/jsx-runtime").JSX.Element | null;
    Words({ children, className }: EditorCharacterCountProps): import("react/jsx-runtime").JSX.Element | null;
};
//# sourceMappingURL=editor.d.ts.map