import { MediaSingleAttributes, MediaSingleLayout } from '@uidu/adf-schema';
import { Node as PMNode, Schema, Slice } from 'prosemirror-model';
import { EditorState, Selection } from 'prosemirror-state';
import { EditorView } from 'prosemirror-view';
import { InputMethodInsertMedia } from "../../analytics/index.js";
import { WidthPluginState } from "../../width/index.js";
import { MediaState } from "../types.js";
export declare const wrappedLayouts: MediaSingleLayout[];
export declare const floatingLayouts: string[];
export declare const nonWrappedLayouts: MediaSingleLayout[];
export interface MediaSingleState extends MediaState {
    dimensions: {
        width: number;
        height: number;
    };
    scaleFactor?: number;
}
export declare const isMediaSingle: (schema: Schema, fileMimeType?: string) => boolean;
export declare const insertMediaAsMediaSingle: (view: EditorView, node: PMNode, inputMethod: InputMethodInsertMedia) => boolean;
export declare const createMediaSingleNode: (schema: Schema) => (mediaState: MediaSingleState) => PMNode;
export declare const insertMediaSingleNode: (view: EditorView, mediaState: MediaState, inputMethod?: InputMethodInsertMedia) => boolean;
export declare function transformSliceForMedia(slice: Slice, schema: Schema): (selection: Selection) => Slice;
export declare const alignAttributes: (layout: MediaSingleLayout, oldAttrs: MediaSingleAttributes, gridSize?: number) => MediaSingleAttributes;
export declare const calcMediaPxWidth: (opts: {
    origWidth: number;
    origHeight: number;
    state: EditorState;
    containerWidth: WidthPluginState;
    layout?: MediaSingleLayout;
    pctWidth?: number;
    pos?: number;
    isFullWidthModeEnabled?: boolean;
    resizedPctWidth?: number;
}) => number;
