import { type PropType } from 'vue';
import type { FocusPosition } from '@tiptap/core';
import type { AiOptions } from '@yiitap/core';
import { Editor } from '@tiptap/core';
type SideMenuAddType = 'menu' | 'empty';
interface SideMenuConfig {
    show: boolean;
    add: SideMenuAddType;
}
interface CollabConfig {
    enabled: boolean;
}
declare var __VLS_4: {}, __VLS_6: {};
type __VLS_Slots = {} & {
    'toolbar-left'?: (props: typeof __VLS_4) => any;
} & {
    'toolbar-right'?: (props: typeof __VLS_6) => any;
};
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    /**
     * Initial content. This can be HTML or JSON.
     */
    content: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    /**
     * Set first block as title.
     */
    title: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Determines if users can write into the editor.
     */
    editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Force the cursor to jump in the editor on initialization.
     */
    autofocus: {
        type: PropType<FocusPosition>;
        default: boolean;
    };
    /**
     * Set the locale of the editor
     */
    locale: {
        type: StringConstructor;
        default: string;
    };
    /**
     * By default, Yiitap is in light mode, you can set it to dark mode.
     */
    darkMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show main menu or not.
     */
    showMainMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show bubble menu or not.
     */
    showBubbleMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show floating menu or not.
     */
    showFloatingMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Side menu config
     */
    sideMenu: {
        type: PropType<SideMenuConfig>;
        default: () => SideMenuConfig;
    };
    /**
     * Show side node or not.
     */
    showSideNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Configure the list of extensions you want to enable.
     *
     * By default, Yiitap enables
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/extensions/index.ts" target="_blank">BuiltinExtensions</a>.
     */
    extensions: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in main menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultMenu</a>.
     */
    mainMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in table menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">TableMenu</a>.
     */
    tableMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in bubble menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultBubble</a>.
     */
    bubbleMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in floating menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultFloating</a>.
     */
    floatingMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Set the page view of the editor.
     */
    pageView: {
        type: StringConstructor;
        default: string;
        validator: (value: string) => boolean;
    };
    aiOptions: {
        type: PropType<AiOptions>;
        default: () => void;
    };
    /**
     * Collab config.
     */
    collab: {
        type: PropType<CollabConfig>;
        default: () => CollabConfig;
    };
}>, {
    /**
     * Editor instance. More about <a href="https://tiptap.dev/docs/editor/api/editor" target="_blank">editor api</a>.
     */
    editor: import("vue").ShallowRef<import("@tiptap/vue-3").Editor, import("@tiptap/vue-3").Editor>;
    /**
     * Whether in dark mode
     */
    darkMode: import("vue").Ref<boolean, boolean>;
    /**
     * Current locale
     */
    locale: import("vue").Ref<string, string>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
    create: (editor: Editor) => any;
    update: (payload: {
        editor: Editor;
    }) => any;
    transaction: (payload: {
        editor: Editor;
        transaction: object;
    }) => any;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    /**
     * Initial content. This can be HTML or JSON.
     */
    content: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    /**
     * Set first block as title.
     */
    title: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Determines if users can write into the editor.
     */
    editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Force the cursor to jump in the editor on initialization.
     */
    autofocus: {
        type: PropType<FocusPosition>;
        default: boolean;
    };
    /**
     * Set the locale of the editor
     */
    locale: {
        type: StringConstructor;
        default: string;
    };
    /**
     * By default, Yiitap is in light mode, you can set it to dark mode.
     */
    darkMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show main menu or not.
     */
    showMainMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show bubble menu or not.
     */
    showBubbleMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Show floating menu or not.
     */
    showFloatingMenu: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Side menu config
     */
    sideMenu: {
        type: PropType<SideMenuConfig>;
        default: () => SideMenuConfig;
    };
    /**
     * Show side node or not.
     */
    showSideNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Configure the list of extensions you want to enable.
     *
     * By default, Yiitap enables
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/extensions/index.ts" target="_blank">BuiltinExtensions</a>.
     */
    extensions: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in main menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultMenu</a>.
     */
    mainMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in table menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">TableMenu</a>.
     */
    tableMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in bubble menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultBubble</a>.
     */
    bubbleMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Configure the list of menu items you want to enable in floating menu.
     *
     * By default, Yiitap uses
     * <a href="https://github.com/pileax-ai/yiitap/blob/main/packages/vue/src/constants/menu.ts" target="_blank">DefaultFloating</a>.
     */
    floatingMenu: {
        type: () => string[];
        default: () => any[];
    };
    /**
     * Set the page view of the editor.
     */
    pageView: {
        type: StringConstructor;
        default: string;
        validator: (value: string) => boolean;
    };
    aiOptions: {
        type: PropType<AiOptions>;
        default: () => void;
    };
    /**
     * Collab config.
     */
    collab: {
        type: PropType<CollabConfig>;
        default: () => CollabConfig;
    };
}>> & Readonly<{
    onCreate?: (editor: Editor) => any;
    onUpdate?: (payload: {
        editor: Editor;
    }) => any;
    onTransaction?: (payload: {
        editor: Editor;
        transaction: object;
    }) => any;
}>, {
    title: boolean;
    locale: string;
    content: string | Record<string, any>;
    floatingMenu: string[];
    darkMode: boolean;
    autofocus: FocusPosition;
    extensions: string[];
    editable: boolean;
    aiOptions: AiOptions;
    bubbleMenu: string[];
    sideMenu: SideMenuConfig;
    showMainMenu: boolean;
    showBubbleMenu: boolean;
    showFloatingMenu: boolean;
    showSideNode: boolean;
    mainMenu: string[];
    tableMenu: string[];
    pageView: string;
    collab: CollabConfig;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
