import { EditorState, EditorView, Schema, Plugin, PluginKey, NodeViewDesc } from '../../prosemirror';
export declare type StateChangeHandler = (state: ImageUploadState) => any;
export interface ImageUploadPluginOptions {
    defaultHandlersEnabled?: boolean;
    supportedImageTypes?: string[];
    maxFileSizeInBytes: number;
}
export declare type ImageUploadHandler = (e: any, insertImageFn: any) => void;
export declare class ImageUploadState {
    active: boolean;
    enabled: boolean;
    hidden: boolean;
    src?: string;
    element?: HTMLElement;
    changeHandlers: StateChangeHandler[];
    private state;
    private config;
    private uploadHandler?;
    constructor(state: EditorState<any>, options?: ImageUploadPluginOptions);
    subscribe(cb: StateChangeHandler): void;
    unsubscribe(cb: StateChangeHandler): void;
    update(state: EditorState<any>, docView: NodeViewDesc, dirty?: boolean): void;
    setUploadHandler(uploadHandler: ImageUploadHandler): void;
    handleImageUpload(view: EditorView, event?: Event): boolean;
    addImage(view: EditorView): Function;
    updateImage(view: EditorView): Function;
    removeImage(view: EditorView): void;
    private getActiveImageElement(docView);
    private canInsertImage();
    private isImageSelected();
}
export declare const stateKey: PluginKey;
declare const plugins: (schema: Schema<any, any>) => Plugin[];
export default plugins;
