import type { NodeSpec, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { MediaDefinition as Media } from './media';
import type { LinkDefinition } from '../marks/link';
import type { ExtendedMediaAttributes } from './types/rich-media-common';
import type { CaptionDefinition as Caption } from './caption';
export type MediaSingleDefinition = MediaSingleFullDefinition | MediaSingleWithCaptionDefinition;
/**
 * @name mediaSingle_node
 // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
 * @additionalProperties true
 */
export interface MediaSingleBaseDefinition {
    attrs?: ExtendedMediaAttributes;
    marks?: Array<LinkDefinition>;
    type: 'mediaSingle';
}
/**
 // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
 * @additionalProperties true
 */
export interface MediaCaptionContent {
    /**
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @minItems 1
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @maxItems 2
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @allowUnsupportedBlock true
     */
    content: [Media, Caption?];
}
/**
 * @name mediaSingle_caption_node
 */
export type MediaSingleWithCaptionDefinition = MediaSingleBaseDefinition & MediaCaptionContent;
/**
 // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
 * @additionalProperties true
 */
export interface MediaSingleFullContent {
    /**
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @minItems 1
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @maxItems 1
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @allowUnsupportedBlock true
     */
    content: Array<Media>;
}
/**
 * @name mediaSingle_full_node
 */
export type MediaSingleFullDefinition = MediaSingleBaseDefinition & MediaSingleFullContent;
export declare const defaultAttrs: {
    layout: {
        default: string;
    };
    width: {
        default: null;
    };
};
export declare const mediaSingleSpec: ({ withCaption, withExtendedWidthTypes, generateLocalId, }: {
    generateLocalId?: boolean | undefined;
    withCaption?: boolean | undefined;
    withExtendedWidthTypes?: boolean | undefined;
}) => NodeSpec;
export declare const mediaSingle: NodeSpec;
export declare const mediaSingleWithCaption: NodeSpec;
export declare const mediaSingleWithWidthType: NodeSpec;
export declare const mediaSingleFull: NodeSpec;
export declare const mediaSingleFullWithLocalId: NodeSpec;
export declare const toJSON: (node: PMNode) => {
    attrs: any;
};
