import './index.css'; import { SylApi } from '@syllepsis/adapter'; import { ILinkProps, Link, LinkController as BaseLinkController } from '@syllepsis/plugin-basic'; import { Node as ProsemirrorNode } from 'prosemirror-model'; import { EditorView } from 'prosemirror-view'; import React, { MouseEventHandler } from 'react'; interface ILinkComponentState { showTooltip: boolean; } interface ILinkComponentProps { attrs: { href: string; text: string; }; editor: SylApi; getBoundingClientRect: () => DOMRect; } declare class LinkComponent extends React.PureComponent { hiddenTooltipTimer: number | null; state: { showTooltip: boolean; }; showTooltipOnHover: () => void; hideTooltipWhenLeaveAsync: () => void; cancelHideTooltip: () => void; preventDefaultEvent: MouseEventHandler; render(): JSX.Element; } declare class LinkSchema extends Link { ViewMap: { template: typeof LinkComponent; }; NodeView: (new (adapter: SylApi, node: ProsemirrorNode, view: EditorView, getPos: boolean | (() => number)) => import("prosemirror-view").NodeView) | undefined; } declare enum InsertType { Insert = "insert", Replace = "replace", Selection = "selection" } interface ILinkModalState { open: boolean; text: string; href: string; pos: number; insertType: InsertType; errorText: string; } interface ILinkModalProps { insert: (attrs: any) => void; editor: SylApi; validateHref?: ILinkProps['validateHref']; } declare class LinkModal extends React.PureComponent { state: { open: boolean; text: string; href: string; pos: number; insertType: InsertType; errorText: string; }; handleClickOpen: () => void; handleClose: () => void; handleConfirm: () => void; onEnterKeyup: (e: React.KeyboardEvent) => void; render(): JSX.Element; } declare class LinkController extends BaseLinkController { modal: LinkModal | null; modalContainer: HTMLElement; eventHandler: { handleClickOn: (editor: SylApi, view: EditorView, pos: number, node: ProsemirrorNode, nodePos: number, event: MouseEvent) => boolean; }; toolbar: { className: string; tooltip: string; handler: (editor: SylApi) => void; }; constructor(editor: SylApi, props: any); editorWillUnmount(): void; } export { ILinkProps, LinkController, LinkSchema };