import { EditorOptions, getHTMLFromFragment } from "@tiptap/core";
import { LinkAttributes } from "./extensions/link";
import "./extensions";
import { Attachment, AttachmentType } from "./extensions/attachment";
import { DateTimeOptions } from "./extensions/date-time";
import { ImageOptions } from "./extensions/image";
import { WebClipOptions } from "./extensions/web-clip";
import { usePermissionHandler } from "./hooks/use-permission-handler";
import Toolbar from "./toolbar";
import { DownloadOptions } from "./utils/downloader";
interface TiptapStorage {
    dateFormat?: DateTimeOptions["dateFormat"];
    timeFormat?: DateTimeOptions["timeFormat"];
    openLink?: (url: string) => void;
    downloadAttachment?: (attachment: Attachment) => void;
    openAttachmentPicker?: (type: AttachmentType) => void;
    previewAttachment?: (attachment: Attachment) => void;
    copyToClipboard?: (text: string, html?: string) => void;
    createInternalLink?: (attributes?: LinkAttributes) => Promise<LinkAttributes | undefined>;
    getAttachmentData: ((attachment: Pick<Attachment, "hash" | "type">) => Promise<string | undefined>) | undefined;
}
declare module "@tiptap/core" {
    interface EditorStorage extends TiptapStorage {
    }
}
declare global {
    var keyboardShown: boolean;
}
export type TiptapOptions = EditorOptions & Omit<WebClipOptions, "HTMLAttributes"> & Omit<ImageOptions, "HTMLAttributes"> & DateTimeOptions & TiptapStorage & {
    downloadOptions?: DownloadOptions;
    isMobile?: boolean;
    doubleSpacedLines?: boolean;
};
declare const useTiptap: (options: Partial<TiptapOptions>, deps?: React.DependencyList) => import("./types").Editor;
export { type Fragment } from "prosemirror-model";
export { type Attachment, type AttachmentType } from "./extensions/attachment";
export { type ImageAttributes } from "./extensions/image";
export * from "./toolbar";
export * from "./types";
export * from "./utils/word-counter";
export * from "./utils/font";
export * from "./utils/toc";
export { useTiptap, Toolbar, usePermissionHandler, getHTMLFromFragment, type DownloadOptions };
