import { MediaADFAttrs } from '@uidu/adf-schema';
import { MediaProvider } from '@uidu/editor-common';
import { Node as PMNode } from 'prosemirror-model';
import { EditorView } from 'prosemirror-view';
import { ProsemirrorGetPosHandler } from '../../../nodeviews';
import { DispatchAnalyticsEvent } from '../../analytics';
import { MediaOptions } from '../types';
export declare type RemoteDimensions = {
    id: string;
    height: number;
    width: number;
};
export interface MediaNodeUpdaterProps {
    view: EditorView;
    node: PMNode;
    mediaProvider?: Promise<MediaProvider>;
    isMediaSingle: boolean;
    mediaOptions?: MediaOptions;
    dispatchAnalyticsEvent?: DispatchAnalyticsEvent;
}
export declare class MediaNodeUpdater {
    props: MediaNodeUpdaterProps;
    constructor(props: MediaNodeUpdaterProps);
    isMediaBlobUrl(): boolean;
    hasFileAttributesDefined: () => number;
    updateFileAttrs: (isMediaSingle?: boolean) => Promise<void>;
    getAttrs: () => MediaADFAttrs | undefined;
    uploadExternalMedia: (getPos: ProsemirrorGetPosHandler) => Promise<void>;
    updateDimensions: (dimensions: RemoteDimensions) => void;
    getRemoteDimensions(): Promise<false | RemoteDimensions>;
    isNodeFromDifferentCollection: () => Promise<boolean>;
    copyNode: () => Promise<void>;
}
