import type { NodeSpec, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { TextDefinition as Text } from './text';
import type { BreakoutMarkDefinition } from '../marks/breakout';
import type { MarksObject, NoMark } from './types/mark';
export type CodeBlockBaseDefinition = {
    attrs?: CodeBlockAttrs;
    /**
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @allowUnsupportedInline true
     */
    content?: Array<Text & NoMark>;
    marks?: Array<any>;
    type: 'codeBlock';
};
export type CodeBlockAttrs = {
    language?: string;
    localId?: string;
    uniqueId?: string;
};
/**
 * @name codeBlock_with_no_marks_node
 */
export type CodeBlockDefinition = CodeBlockBaseDefinition & NoMark;
/**
 * @name codeBlock_node
 */
export type CodeBlockWithMarksDefinition = CodeBlockBaseDefinition & MarksObject<BreakoutMarkDefinition>;
export declare const codeBlock: NodeSpec;
export declare const toJSON: (node: PMNode) => {
    attrs: Record<string, any>;
};
export declare const codeBlockWithLocalId: NodeSpec;
