import type { UnsupportedContentLevelsTracking } from '@atlaskit/editor-common/utils';
import type { ADFStage } from '@atlaskit/editor-common/validator';
import type { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
import type { AnalyticsEventPayload } from './analytics/events';
import type { Serializer } from './serializer';
import type { RendererAppearance } from './ui/Renderer/types';
export interface RenderOutput<T> {
    pmDoc?: PMNode;
    result: T;
    stat: RenderOutputStat;
}
export interface RenderOutputStat {
    buildTreeTime?: number;
    nodesCount?: Record<string, number>;
    sanitizeTime: number;
    serializeTime?: number;
}
export interface ResultWithTime<T> {
    output: T;
    time: number;
}
type DispatchAnalyticsEvent = (event: AnalyticsEventPayload) => void;
export declare const renderDocument: <T>(doc: any, serializer: Serializer<T>, schema?: Schema, adfStage?: ADFStage, useSpecBasedValidator?: boolean, rendererId?: string, dispatchAnalyticsEvent?: DispatchAnalyticsEvent, unsupportedContentLevelsTracking?: UnsupportedContentLevelsTracking, appearance?: RendererAppearance, includeNodesCountInStats?: boolean, skipValidation?: boolean, validationOverrides?: {
    allowNestedTables?: boolean;
    allowTableInPanel?: boolean;
}) => RenderOutput<T | null>;
export {};
