import type { Transaction } from 'prosemirror-state';
import type { EditorView } from 'prosemirror-view';
export declare abstract class WidgetDescriptor {
    #private;
    abstract remove(): void;
    protected abstract renderWidget(view: EditorView, getPos: () => number): HTMLElement;
    get id(): string;
    get initPos(): number;
    protected get view(): EditorView | undefined;
    protected get getPos(): (() => number) | undefined;
    get pos(): number;
    constructor(initPos: number, idPrefix?: string);
    render(view: EditorView, getPos: () => number): HTMLElement;
    applyTo(tr: Transaction): Transaction;
    rmDeco(tr: Transaction): Transaction;
}
