import type { AttributeSpec, NodeSpec, Node as PMNode } from '@atlaskit/editor-prosemirror/model'; import type { BorderMarkDefinition } from '../marks/border'; import type { LinkDefinition } from '../marks/link'; import type { AnnotationMarkDefinition } from '../marks/annotation'; export type MediaType = 'file' | 'link' | 'external'; export type DisplayType = 'file' | 'thumbnail'; export type DefaultAttributes = { [P in keyof T]: { default?: T[P] | null; }; }; /** * @name media_node */ export interface MediaDefinition { /** * Minimum item: 1 */ attrs: MediaADFAttrs; marks?: Array; type: 'media'; } export interface MediaBaseAttributes { __contextId?: string | null; __displayType?: DisplayType | null; __external?: boolean; __fileMimeType?: string | null; __fileName?: string | null; __fileSize?: number | null; __mediaTraceId?: string | null; alt?: string; collection: string; height?: number; /** * Minimum length: 1 */ id: string; localId?: string; /** * Occurrence key (minimum length: 1) */ occurrenceKey?: string; width?: number; } export interface MediaAttributes extends MediaBaseAttributes { type: 'file' | 'link'; } export interface ExternalMediaAttributes { __external?: boolean; alt?: string; height?: number; localId?: string; type: 'external'; url: string; width?: number; } export type MediaADFAttrs = MediaAttributes | ExternalMediaAttributes; export declare const defaultAttrs: { [name: string]: AttributeSpec; } | undefined; export interface MutableMediaAttributes extends MediaAttributes { [key: string]: string | number | undefined | null | boolean; } export declare const camelCaseToKebabCase: (str: string) => string; export declare const copyPrivateAttributes: (from: Record, to: Record, attributes?: Partial, map?: ((str: string) => string) | undefined) => void; export declare const createMediaSpec: (attributes: Partial, inline?: boolean, generateLocalId?: boolean) => NodeSpec; export declare const media: NodeSpec; export declare const mediaWithLocalId: NodeSpec; export declare const toJSON: (node: PMNode) => { attrs: Record; };