import type { Mark as PMMark, Schema } from '@atlaskit/editor-prosemirror/model';
import type { ADFStages } from './ADFStages';
export type ADFStage = (typeof ADFStages)[keyof typeof ADFStages];
export interface ADDoc {
    content: ADNode[];
    type: 'doc';
    version: 1;
}
export interface ADNode {
    attrs?: any;
    content?: ADNode[];
    marks?: ADMark[];
    text?: string;
    type: string;
}
export interface ADMark {
    attrs?: any;
    type: string;
}
export interface ADMarkSimple {
    attrs?: any;
    type: {
        name: string;
    };
}
export declare const getMarksByOrder: (marks: readonly PMMark[]) => PMMark[];
export declare const getValidDocument: (doc: ADDoc, schema?: Schema, adfStage?: ADFStage) => ADDoc | null;
export declare const getValidContent: (content: ADNode[], schema?: Schema, adfStage?: ADFStage) => ADNode[];
/**
 * Sanitize unknown node tree
 *
 * @see https://product-fabric.atlassian.net/wiki/spaces/E/pages/11174043/Document+structure#Documentstructure-ImplementationdetailsforHCNGwebrenderer
 */
export declare const getValidUnknownNode: (node: ADNode) => ADNode;
export declare const getValidNode: (originalNode: ADNode, schema?: Schema, adfStage?: ADFStage) => ADNode;
export declare const getValidMark: (mark: ADMark, adfStage?: ADFStage) => ADMark | null;
export { ADFStages } from './ADFStages';
export { markOrder } from './markOrder';
export { isSubSupType } from './isSubSupType';
export { isSameMark } from './isSameMark';
