import { RteCustomToolbarProps } from '@studio/editor/src/typeConfigs/rte';
import { RteTinyMceOptions as RteTinyMceOptionsSchema } from './typesSchema';
import { ComponentView, Component, Editor } from 'grapesjs';
import { TinyMCE, RawEditorOptions, Editor as EditorTinyMCE } from 'tinymce';
export type { Editor as EditorTinyMCE, RawEditorOptions } from 'tinymce';
export { StudioCommands } from '@studio/editor/src/plugins/global/types';
export { ThemeValue } from '@studio/editor/src/typeConfigs/themes';
export interface RteTinyMceOptions extends Omit<RteTinyMceOptionsSchema, 'loadConfig'> {
    /**
     * Pass your custom configuration to the TinyMCE editor.
     * @example
     * ({ config, editor, component }) => {
     *  return {
     *   toolbar: 'bold italic underline strikethrough',
     *   // ...
     *  }
     * }
     */
    loadConfig?: (props: {
        config: RawEditorOptions;
        editor: Editor;
        component: Component;
        componentView: ComponentView;
    }) => RawEditorOptions;
}
export interface CustomRteOptions extends RteCustomToolbarProps {
    event?: PointerEvent;
    view: ComponentView;
}
export interface EditorDataTinyMCE {
    rteEditor: EditorTinyMCE;
    rteEditorShallow: EditorTinyMCE;
}
export interface HTMLElementWithSwiper extends HTMLElement {
    __onLoad?: (swiper: any) => void;
    __activeSlide?: number;
    __inPreview?: boolean;
}
declare global {
    interface Window {
        tinymce: TinyMCE;
    }
}
