import type { NodeSpec } from '@atlaskit/editor-prosemirror/model';
import type { LinkDefinition } from '../marks/link';
import type { CaptionDefinition as Caption } from './caption';
import type { MediaDefinition as Media } from './media';
import type { ExtendedMediaAttributes } from './types/rich-media-common';
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 mediaSingle: NodeSpec;
export declare const mediaSingleWithCaption: NodeSpec;
export declare const mediaSingleWithWidthType: NodeSpec;
export declare const mediaSingleFull: NodeSpec;
export declare const mediaSingleFullWithLocalId: NodeSpec;
export { mediaSingleSpec } from './media-single-spec';
export { toJSON } from './to-json';
