import type { App } from 'vue';
import EditorContainer from './intersection/components/editor';
export * from './typings/index';
declare const TinyPeony: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        preTime: {
            type: StringConstructor;
            default: string;
        };
        textCount: {
            type: NumberConstructor;
            default: number;
        };
        highlight: {
            type: BooleanConstructor;
            default: undefined;
        };
        listenAnchorId: {
            type: StringConstructor;
            default: string;
        };
        listenMode: {
            type: import("vue").PropType<import("./typings/shared").ListenModeEnum>;
            default: string;
        };
        placeholder: {
            type: StringConstructor;
            default: string;
        };
        simple: {
            type: BooleanConstructor;
            default: boolean;
        };
        maxLength: {
            type: NumberConstructor;
            default: number;
        };
        showWordLimit: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        class: {
            type: (ArrayConstructor | StringConstructor)[];
            default: () => never[];
        };
        contentStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
            default: () => {};
        };
        refinable: {
            type: BooleanConstructor;
            default: boolean;
        };
        refineContext: {
            type: import("vue").PropType<import("./intersection/components/editor/context").RefineContext>;
        };
        editorHeight: {
            type: (StringConstructor | NumberConstructor)[];
            default: string;
        };
        showPreTime: {
            type: BooleanConstructor;
            default: boolean;
        };
        wordLimitTip: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{
        onChange?: ((contentLength: number) => any) | undefined;
        onClear?: (() => any) | undefined;
        "onUpdate:textCount"?: ((value: number) => any) | undefined;
        onAnchorListen?: ((value: import("./typings/index").IAnchor, text: string) => any) | undefined;
        onAnchorRemove?: ((value: import("./typings/index").IAnchor) => any) | undefined;
        onAnchorListenStop?: ((value: import("./typings/index").IAnchor) => any) | undefined;
    }>, {
        action: import("vue").Ref<import("./intersection/hooks/use-editor").EditorAction | undefined, import("./intersection/hooks/use-editor").EditorAction | undefined>;
        innerRender: () => import("vue/jsx-runtime").JSX.Element;
        innerGetContent: (_options?: import("./intersection/components/editor/context").ContentOptions) => string;
        innerSetContent: (content: string) => Promise<void>;
        innerSetMarkdown: (markdown: string) => Promise<void>;
        innerAppendMarkdown: (markdown: string) => Promise<void>;
        innerGetMarkdownContent: () => string;
        innerAppendContent: (content: string | string[]) => Promise<void>;
        innerGetTextContent: () => string[];
        innerInsertContent: (content: string | Node) => void;
        innerDeleteContent: () => void;
        innerUpdateContent: (content: string | Node) => void;
        innerIsCaret: () => boolean;
        innerIsRange: () => boolean;
        innerIsSelectionInDifferentParas: () => boolean;
        innerIsSelectionContainsTag: (type: import("./typings/shared").PluginFlag) => boolean;
        innerConvertToContent: (node: HTMLElement | Text) => string | undefined;
        innerGetAnchorTtsMark: (anchor: import("./typings/index").IAnchor, startFromCursor?: boolean) => string;
        innerGetAnchorTtsEmotionAndRole: (anchor: import("./typings/index").IAnchor) => [string, string | undefined];
        innerIsAllMarkedByAnchor: () => boolean;
        innerAddExtraAnchors: (data: import("./typings/index").IAnchor[]) => void;
        innerUpdateAnchor: (newAnchor: import("./typings/index").IAnchor) => void;
        innerClearContent: () => void;
        innerInsertContentAtCursor: (_content: string | string[], func?: (canInsert: boolean) => void) => void;
        innerRenderHightlight: (matchingContent: string) => void;
        innerUnrenderHightlight: () => void;
        innerIsWordLengthExceeded: () => boolean;
    }, {}, {}, {
        getContent(options?: import("./intersection/components/editor/context").ContentOptions): string;
        getHtml(options: import("./intersection/components/editor/context").ContentOptions): string;
        setContent(content: string): Promise<void>;
        setHtml(content: string): Promise<void>;
        setMarkdown(markdown: string): Promise<void>;
        appendMarkdown(markdown: string): Promise<void>;
        getMarkdownContent(): string;
        appendContent(content: string | string[]): Promise<void>;
        getTextContent(): string[];
        insertContent(content: string | Node): void;
        deleteContent(): void;
        updateContent(content: string | Node): void;
        isCaret(): boolean;
        isRange(): boolean;
        isSelectionInDifferentParas(): boolean;
        isSelectionContainsTag(type: import("./typings/shared").PluginFlag): boolean;
        convertToContent(node: HTMLElement | Text): string | undefined;
        getAnchorTtsMark(anchor: import("./typings/index").IAnchor, startFromCursor?: boolean): string;
        getAnchorTtsEmotionAndRole(anchor: import("./typings/index").IAnchor): [string, string | undefined];
        isAllMarkedByAnchor(): boolean;
        addExtraAnchors(data: import("./typings/index").IAnchor[]): void;
        updateAnchor(anchor: import("./typings/index").IAnchor): void;
        clearContent(): void;
        insertContentAtCursor(_content: string | string[], callback?: (canInsert: boolean) => void): void;
        clear(): Promise<void>;
        renderHighlight(matchingContent: string): void;
        unrenderHighlight(): void;
        isWordLengthExceeded(): boolean;
    }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        change: (contentLength: number) => true;
        'update:textCount': (value: number) => true;
        anchorListen: (value: import("./typings/index").IAnchor, text: string) => true;
        anchorListenStop: (value: import("./typings/index").IAnchor) => true;
        anchorRemove: (value: import("./typings/index").IAnchor) => true;
        clear: () => true;
    }, import("vue").PublicProps, {
        highlight: boolean;
        class: string | unknown[];
        disabled: boolean;
        placeholder: string;
        maxLength: number;
        showWordLimit: boolean;
        simple: boolean;
        wordLimitTip: string;
        preTime: string;
        textCount: number;
        listenAnchorId: string;
        listenMode: import("./typings/shared").ListenModeEnum;
        contentStyle: import("vue").CSSProperties;
        refinable: boolean;
        editorHeight: string | number;
        showPreTime: boolean;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        preTime: {
            type: StringConstructor;
            default: string;
        };
        textCount: {
            type: NumberConstructor;
            default: number;
        };
        highlight: {
            type: BooleanConstructor;
            default: undefined;
        };
        listenAnchorId: {
            type: StringConstructor;
            default: string;
        };
        listenMode: {
            type: import("vue").PropType<import("./typings/shared").ListenModeEnum>;
            default: string;
        };
        placeholder: {
            type: StringConstructor;
            default: string;
        };
        simple: {
            type: BooleanConstructor;
            default: boolean;
        };
        maxLength: {
            type: NumberConstructor;
            default: number;
        };
        showWordLimit: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        class: {
            type: (ArrayConstructor | StringConstructor)[];
            default: () => never[];
        };
        contentStyle: {
            type: import("vue").PropType<import("vue").CSSProperties>;
            default: () => {};
        };
        refinable: {
            type: BooleanConstructor;
            default: boolean;
        };
        refineContext: {
            type: import("vue").PropType<import("./intersection/components/editor/context").RefineContext>;
        };
        editorHeight: {
            type: (StringConstructor | NumberConstructor)[];
            default: string;
        };
        showPreTime: {
            type: BooleanConstructor;
            default: boolean;
        };
        wordLimitTip: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{
        onChange?: ((contentLength: number) => any) | undefined;
        onClear?: (() => any) | undefined;
        "onUpdate:textCount"?: ((value: number) => any) | undefined;
        onAnchorListen?: ((value: import("./typings/index").IAnchor, text: string) => any) | undefined;
        onAnchorRemove?: ((value: import("./typings/index").IAnchor) => any) | undefined;
        onAnchorListenStop?: ((value: import("./typings/index").IAnchor) => any) | undefined;
    }>, {
        action: import("vue").Ref<import("./intersection/hooks/use-editor").EditorAction | undefined, import("./intersection/hooks/use-editor").EditorAction | undefined>;
        innerRender: () => import("vue/jsx-runtime").JSX.Element;
        innerGetContent: (_options?: import("./intersection/components/editor/context").ContentOptions) => string;
        innerSetContent: (content: string) => Promise<void>;
        innerSetMarkdown: (markdown: string) => Promise<void>;
        innerAppendMarkdown: (markdown: string) => Promise<void>;
        innerGetMarkdownContent: () => string;
        innerAppendContent: (content: string | string[]) => Promise<void>;
        innerGetTextContent: () => string[];
        innerInsertContent: (content: string | Node) => void;
        innerDeleteContent: () => void;
        innerUpdateContent: (content: string | Node) => void;
        innerIsCaret: () => boolean;
        innerIsRange: () => boolean;
        innerIsSelectionInDifferentParas: () => boolean;
        innerIsSelectionContainsTag: (type: import("./typings/shared").PluginFlag) => boolean;
        innerConvertToContent: (node: HTMLElement | Text) => string | undefined;
        innerGetAnchorTtsMark: (anchor: import("./typings/index").IAnchor, startFromCursor?: boolean) => string;
        innerGetAnchorTtsEmotionAndRole: (anchor: import("./typings/index").IAnchor) => [string, string | undefined];
        innerIsAllMarkedByAnchor: () => boolean;
        innerAddExtraAnchors: (data: import("./typings/index").IAnchor[]) => void;
        innerUpdateAnchor: (newAnchor: import("./typings/index").IAnchor) => void;
        innerClearContent: () => void;
        innerInsertContentAtCursor: (_content: string | string[], func?: (canInsert: boolean) => void) => void;
        innerRenderHightlight: (matchingContent: string) => void;
        innerUnrenderHightlight: () => void;
        innerIsWordLengthExceeded: () => boolean;
    }, {}, {}, {
        getContent(options?: import("./intersection/components/editor/context").ContentOptions): string;
        getHtml(options: import("./intersection/components/editor/context").ContentOptions): string;
        setContent(content: string): Promise<void>;
        setHtml(content: string): Promise<void>;
        setMarkdown(markdown: string): Promise<void>;
        appendMarkdown(markdown: string): Promise<void>;
        getMarkdownContent(): string;
        appendContent(content: string | string[]): Promise<void>;
        getTextContent(): string[];
        insertContent(content: string | Node): void;
        deleteContent(): void;
        updateContent(content: string | Node): void;
        isCaret(): boolean;
        isRange(): boolean;
        isSelectionInDifferentParas(): boolean;
        isSelectionContainsTag(type: import("./typings/shared").PluginFlag): boolean;
        convertToContent(node: HTMLElement | Text): string | undefined;
        getAnchorTtsMark(anchor: import("./typings/index").IAnchor, startFromCursor?: boolean): string;
        getAnchorTtsEmotionAndRole(anchor: import("./typings/index").IAnchor): [string, string | undefined];
        isAllMarkedByAnchor(): boolean;
        addExtraAnchors(data: import("./typings/index").IAnchor[]): void;
        updateAnchor(anchor: import("./typings/index").IAnchor): void;
        clearContent(): void;
        insertContentAtCursor(_content: string | string[], callback?: (canInsert: boolean) => void): void;
        clear(): Promise<void>;
        renderHighlight(matchingContent: string): void;
        unrenderHighlight(): void;
        isWordLengthExceeded(): boolean;
    }, {
        highlight: boolean;
        class: string | unknown[];
        disabled: boolean;
        placeholder: string;
        maxLength: number;
        showWordLimit: boolean;
        simple: boolean;
        wordLimitTip: string;
        preTime: string;
        textCount: number;
        listenAnchorId: string;
        listenMode: import("./typings/shared").ListenModeEnum;
        contentStyle: import("vue").CSSProperties;
        refinable: boolean;
        editorHeight: string | number;
        showPreTime: boolean;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    preTime: {
        type: StringConstructor;
        default: string;
    };
    textCount: {
        type: NumberConstructor;
        default: number;
    };
    highlight: {
        type: BooleanConstructor;
        default: undefined;
    };
    listenAnchorId: {
        type: StringConstructor;
        default: string;
    };
    listenMode: {
        type: import("vue").PropType<import("./typings/shared").ListenModeEnum>;
        default: string;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    simple: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxLength: {
        type: NumberConstructor;
        default: number;
    };
    showWordLimit: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    class: {
        type: (ArrayConstructor | StringConstructor)[];
        default: () => never[];
    };
    contentStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
        default: () => {};
    };
    refinable: {
        type: BooleanConstructor;
        default: boolean;
    };
    refineContext: {
        type: import("vue").PropType<import("./intersection/components/editor/context").RefineContext>;
    };
    editorHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    showPreTime: {
        type: BooleanConstructor;
        default: boolean;
    };
    wordLimitTip: {
        type: StringConstructor;
        default: string;
    };
}>> & Readonly<{
    onChange?: ((contentLength: number) => any) | undefined;
    onClear?: (() => any) | undefined;
    "onUpdate:textCount"?: ((value: number) => any) | undefined;
    onAnchorListen?: ((value: import("./typings/index").IAnchor, text: string) => any) | undefined;
    onAnchorRemove?: ((value: import("./typings/index").IAnchor) => any) | undefined;
    onAnchorListenStop?: ((value: import("./typings/index").IAnchor) => any) | undefined;
}>, {
    action: import("vue").Ref<import("./intersection/hooks/use-editor").EditorAction | undefined, import("./intersection/hooks/use-editor").EditorAction | undefined>;
    innerRender: () => import("vue/jsx-runtime").JSX.Element;
    innerGetContent: (_options?: import("./intersection/components/editor/context").ContentOptions) => string;
    innerSetContent: (content: string) => Promise<void>;
    innerSetMarkdown: (markdown: string) => Promise<void>;
    innerAppendMarkdown: (markdown: string) => Promise<void>;
    innerGetMarkdownContent: () => string;
    innerAppendContent: (content: string | string[]) => Promise<void>;
    innerGetTextContent: () => string[];
    innerInsertContent: (content: string | Node) => void;
    innerDeleteContent: () => void;
    innerUpdateContent: (content: string | Node) => void;
    innerIsCaret: () => boolean;
    innerIsRange: () => boolean;
    innerIsSelectionInDifferentParas: () => boolean;
    innerIsSelectionContainsTag: (type: import("./typings/shared").PluginFlag) => boolean;
    innerConvertToContent: (node: HTMLElement | Text) => string | undefined;
    innerGetAnchorTtsMark: (anchor: import("./typings/index").IAnchor, startFromCursor?: boolean) => string;
    innerGetAnchorTtsEmotionAndRole: (anchor: import("./typings/index").IAnchor) => [string, string | undefined];
    innerIsAllMarkedByAnchor: () => boolean;
    innerAddExtraAnchors: (data: import("./typings/index").IAnchor[]) => void;
    innerUpdateAnchor: (newAnchor: import("./typings/index").IAnchor) => void;
    innerClearContent: () => void;
    innerInsertContentAtCursor: (_content: string | string[], func?: (canInsert: boolean) => void) => void;
    innerRenderHightlight: (matchingContent: string) => void;
    innerUnrenderHightlight: () => void;
    innerIsWordLengthExceeded: () => boolean;
}, {}, {}, {
    getContent(options?: import("./intersection/components/editor/context").ContentOptions): string;
    getHtml(options: import("./intersection/components/editor/context").ContentOptions): string;
    setContent(content: string): Promise<void>;
    setHtml(content: string): Promise<void>;
    setMarkdown(markdown: string): Promise<void>;
    appendMarkdown(markdown: string): Promise<void>;
    getMarkdownContent(): string;
    appendContent(content: string | string[]): Promise<void>;
    getTextContent(): string[];
    insertContent(content: string | Node): void;
    deleteContent(): void;
    updateContent(content: string | Node): void;
    isCaret(): boolean;
    isRange(): boolean;
    isSelectionInDifferentParas(): boolean;
    isSelectionContainsTag(type: import("./typings/shared").PluginFlag): boolean;
    convertToContent(node: HTMLElement | Text): string | undefined;
    getAnchorTtsMark(anchor: import("./typings/index").IAnchor, startFromCursor?: boolean): string;
    getAnchorTtsEmotionAndRole(anchor: import("./typings/index").IAnchor): [string, string | undefined];
    isAllMarkedByAnchor(): boolean;
    addExtraAnchors(data: import("./typings/index").IAnchor[]): void;
    updateAnchor(anchor: import("./typings/index").IAnchor): void;
    clearContent(): void;
    insertContentAtCursor(_content: string | string[], callback?: (canInsert: boolean) => void): void;
    clear(): Promise<void>;
    renderHighlight(matchingContent: string): void;
    unrenderHighlight(): void;
    isWordLengthExceeded(): boolean;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    change: (contentLength: number) => true;
    'update:textCount': (value: number) => true;
    anchorListen: (value: import("./typings/index").IAnchor, text: string) => true;
    anchorListenStop: (value: import("./typings/index").IAnchor) => true;
    anchorRemove: (value: import("./typings/index").IAnchor) => true;
    clear: () => true;
}, string, {
    highlight: boolean;
    class: string | unknown[];
    disabled: boolean;
    placeholder: string;
    maxLength: number;
    showWordLimit: boolean;
    simple: boolean;
    wordLimitTip: string;
    preTime: string;
    textCount: number;
    listenAnchorId: string;
    listenMode: import("./typings/shared").ListenModeEnum;
    contentStyle: import("vue").CSSProperties;
    refinable: boolean;
    editorHeight: string | number;
    showPreTime: boolean;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    install: (app: App, options?: Record<string, any>) => void;
} & {
    install: (app: App) => void;
};
export type TinyPeonyInstance = InstanceType<typeof EditorContainer>;
export default TinyPeony;
