import type { InlineAiApi } from '../../plugin-inline-ai/inline-ai-context-provider.js';
import type { FileUploadData } from '../../plugin-file-upload/types-next.js';
import type { RichContent } from '../../ricos-schema/next-schema/generated/ricos_document.js';
import type { OnPluginAction } from '../plugins-bi-callbacks-types.js';
import type { BICallbacks, FocusPosition, PublicCommands, ToolbarButtonProps, ToolbarType } from './index.js';
export interface Helpers extends BICallbacksForHelpers {
    openModal?: (modalProps: Record<string, unknown>) => void;
    closeModal?: () => void;
    onVideoSelected?: (url: string, updateEntity: (data: {
        oembed: {
            thumbnail_url?: string;
            thumbnail_height?: number;
            thumbnail_width?: number;
            video_url?: string;
            title?: string;
        } | null;
    }) => void) => void;
    getImageUrl?: ({ file_name }: {
        file_name: string;
    }) => string;
    resolveFileUrl?: (data: FileUploadData) => Promise<string>;
    [propName: string]: ((...args: any[]) => any) | undefined;
}
interface BICallbacksForHelpers extends BICallbacks {
    onPluginAdd?(pluginId: string, entryPoint: string, version?: string, contentId?: string): void;
    onPluginAddSuccess?(pluginId: string, entryPoint: string, params: $TSFixMe, version?: string, contentId?: string): void;
    isPreview?: () => boolean;
    onPluginAction?: OnPluginAction;
}
export type OnErrorFunction = (error: string) => void;
export interface EditorStyleClasses {
    editorClassName?: string;
    containerClassName?: string;
}
export declare const DOC_STYLE_TYPES: {
    readonly P: 'paragraph';
    readonly H1: 'headerOne';
    readonly H2: 'headerTwo';
    readonly H3: 'headerThree';
    readonly H4: 'headerFour';
    readonly H5: 'headerFive';
    readonly H6: 'headerSix';
};
export declare const DRAFT_TO_DOC_TYPE_WITH_LISTS: {
    "header-one": string;
    "header-two": string;
    "header-three": string;
    "header-four": string;
    "header-five": string;
    "header-six": string;
    unstyled: string;
    'ordered-list-item': string;
    'unordered-list-item': string;
};
type GetContentPromiseProps = {
    flush?: boolean | undefined;
    publishId?: string | undefined;
} | undefined;
export type OpenModalOptions = {
    type: 'AI_IMAGE' | 'INLINE_AI' | 'SHORTCUTS_SHEET' | 'AI_WIDGET';
};
export interface RicosEditorAPI {
    focus(focusPosition?: FocusPosition): void;
    blur(): void;
    undo(): void;
    redo(): void;
    getContent(postId?: string, forPublish?: boolean, shouldRemoveErrorBlocks?: boolean): Promise<RichContent>;
    getContentPromise(props: GetContentPromiseProps): Promise<RichContent>;
    getContentTraits(): {
        isEmpty: boolean;
        isContentChanged: boolean;
        isLastChangeEdit: boolean;
    };
    /** Replaces the editor content. Imperative replacement for the removed `injectedContent` prop. */
    setContent(content: RichContent): void;
    /**
     * @internal
     * @deprecated Reserved for internal Wix consumers (e.g. React Native app). General consumers
     * should use the top-level editor methods (`undo`, `redo`, `prePublish`) and reactive hooks
     * (`useToolbarProps`, `useUndoState`) instead — `PublicCommands` shape can change without warning.
     */
    getEditorCommands(): PublicCommands;
    getEditorContainer(): HTMLElement | undefined;
    openModal: (options: OpenModalOptions) => void;
    useToolbarProps: (type: ToolbarType | 'WIXEL') => {
        buttons: Record<string, ToolbarButtonProps>;
        toolbarType?: ToolbarType;
    };
    /**
     * @internal Wixel-only. Combined toolbar buttons + focus signal for the wixel
     * asset-header. Shape may change without warning. Not for general consumers.
     */
    useToolbarWixelProps: () => {
        buttons: Record<string, ToolbarButtonProps>;
        toolbarType: ToolbarType;
        isEditorOrPortalFocused: () => boolean;
    };
    useInlineAiState: (invocationId: string) => InlineAiApi | undefined;
    prePublish(): Promise<RichContent>;
    useUndoState: () => {
        isUndoStackEmpty: boolean;
        isRedoStackEmpty: boolean;
    };
}
export {};
//# sourceMappingURL=editor-types.d.ts.map