import { StateEffect, type Extension } from '@codemirror/state';
import type { HostPortalCallbacks } from './hostCallbacks';
/** Lifecycle callbacks for the editor action buttons. See {@link HostPortalCallbacks}. */
export type EditorActionsCallbacks = HostPortalCallbacks;
export type EditorActionsController = {
    /** CodeMirror extension to register on the editor. */
    extension: Extension;
    /**
     * Drive the action buttons from the host's state: pass callbacks to mount
     * them, or `null` to unmount. Returns the effect for the host to dispatch.
     *
     * Visibility is purely a function of whether callbacks exist — there's no
     * separate show/hide toggle.
     */
    set: (callbacks: EditorActionsCallbacks | null) => StateEffect<boolean>;
};
export declare function createEditorActionsController(): EditorActionsController;
