import type { NextEditorPlugin } from './index';
/**
 * Duck-typed mirror of `@atlassian/editor-plugin-markdown-mode`'s
 * `MarkdownModePlugin`, covering all actions and `sharedState` fields
 * declared by that plugin.
 *
 * We avoid importing the real type because `@atlaskit/editor-plugin-text-formatting`
 * publishes to public npm while `@atlassian/editor-plugin-markdown-mode` only
 * publishes to Atlassian's internal registry — re-exporting the cross-namespace
 * type in this package's `.d.ts` would leave the type unresolvable for external
 * consumers. TS structural typing means the real plugin (when loaded by the host)
 * satisfies this stub, so runtime calls are still type-correct.
 *
 * Maintenance: this stub is NOT compile-time checked against the source-of-truth
 * `MarkdownModePlugin` type. If markdown-mode renames, removes, or changes the
 * signature of any of the actions/shared-state fields listed below, the mismatch
 * surfaces only at runtime (stale toolbar state, no-op clicks). Keep the action
 * signatures and `sharedState` fields here in sync with
 * `@atlassian/editor-plugin-markdown-mode/src/markdownModePluginType.ts`.
 */
export type _MarkdownModePluginStub = NextEditorPlugin<'markdownMode', {
    actions: {
        dispatchSourceCommand: (cmd: unknown) => boolean;
        registerSourceCommandDispatch: (dispatcher: ((cmd: unknown) => boolean) | null) => void;
        setSourceBlockFormatState: (state: unknown) => void;
        setSourceFormatState: (state: unknown) => void;
        setSourceInlineFormatState: (state: unknown) => void;
        setSourceListFormatState: (state: unknown) => void;
        setView: (view: 'syntax' | 'split-view' | 'preview') => void;
        toggleSourceBlockquote: () => boolean;
        toggleSourceBold: () => boolean;
        toggleSourceBulletList: () => boolean;
        toggleSourceHeading: (level: 1 | 2 | 3 | 4 | 5 | 6) => boolean;
        toggleSourceInlineCode: () => boolean;
        toggleSourceItalic: () => boolean;
        toggleSourceOrderedList: () => boolean;
        toggleSourceStrike: () => boolean;
        toggleSourceTaskList: () => boolean;
    };
    sharedState: {
        isMarkdownMode: boolean;
        sourceBlockFormatState: {
            headingLevel: number | null;
            inBlockquote: boolean;
            inCodeBlock: boolean;
        } | null;
        sourceInlineFormatState: {
            boldActive: boolean;
            codeActive: boolean;
            inlineFormattingAvailable: boolean;
            italicActive: boolean;
            strikeActive: boolean;
        } | null;
        sourceListFormatState: {
            inBulletList: boolean;
            inOrderedList: boolean;
            inTaskList: boolean;
        } | null;
        view: 'syntax' | 'split-view' | 'preview';
    } | undefined;
}>;
