import { EditorConfig, EventInfo, ModelDocumentSelection, ModelRange, ViewDataTransfer } from 'ckeditor5';
export type SdEditorConfig = EditorConfig & {
    getOption?: () => SdDocumentBuilderOption;
};
export interface SdDocumentBuilderOption {
    onDropVariable?: (variable: SdDocumentBuilderVariable, dropIndex: number) => boolean | Promise<boolean | SdDocumentBuilderVariable>;
    onAddComment?: (selectedComment: SdDocumentBuilderSelectedComment) => void;
    onSelectComment?: (markerId: string) => void;
    onSelection?: (selection: ModelDocumentSelection, $event: EventInfo<string, unknown>) => void;
    onOrientation?: (orientation: 'PORTRAIT' | 'LANDSCAPE') => void;
    onPaste?: (data: SdPasteEventData) => void | Promise<void>;
    orientation?: 'PORTRAIT' | 'LANDSCAPE';
}
export interface SdDocumentBuilderVariable<T = any> {
    id: string;
    uuid?: string;
    value: string;
    display: string;
    data?: T;
}
export interface SdDocumentBuilderSelectedComment {
    range: ModelRange;
    selectedText: string;
}
export interface SdDocumentBuilderComment<T = any> {
    markerId: string;
    selectedText: string;
    comment?: string;
    createdAt?: Date;
    data?: T;
}
export interface SdDocumentBuilderHeading {
    id: string;
    text: string;
    level: number;
    type: string;
}
export interface SdPasteEventData {
    html?: string;
    text: string;
    source: 'word' | 'excel' | 'google-docs' | 'web' | 'unknown';
    dataTransfer: ViewDataTransfer;
}
