/**
 * Toolbar component for the ProseMirror markdown editor.
 *
 * Renders formatting buttons (bold, italic, code), heading level selectors,
 * list toggles (bullet/ordered), block formatting (blockquote, code block,
 * horizontal rule), and an inline link editor -- all driven by the
 * {@link MarkdownFeatures} configuration.
 *
 * @module
 */
import { Value, Signal } from '@tempots/dom';
import type { EditorView } from 'prosemirror-view';
import type { MarkdownFeatures } from './prosemirror-markdown-input';
import { ControlSize } from '../theme';
/**
 * Options for configuring the ProseMirror markdown toolbar.
 */
export interface ProseMirrorToolbarOptions {
    /** Signal holding the ProseMirror editor view, or `null` before initialization. */
    view: Signal<EditorView | null>;
    /** Ticker signal that increments on every ProseMirror state change. */
    stateUpdate: Signal<number>;
    /** Signal of enabled markdown features controlling which toolbar buttons are visible. */
    features: Signal<MarkdownFeatures>;
    /**
     * Signal indicating whether the editor is in read-only mode.
     * Toolbar buttons are disabled when `true`.
     * @default signal(false)
     */
    readOnly?: Signal<boolean>;
    /**
     * Size of the toolbar buttons.
     * @default 'sm'
     */
    size?: Value<ControlSize>;
}
/**
 * Creates a formatting toolbar for the ProseMirror markdown editor.
 *
 * The toolbar adapts dynamically to the enabled {@link MarkdownFeatures},
 * showing only the relevant button groups. It integrates with BeatUI's
 * i18n system for localised button labels and tooltips.
 *
 * @param options - Toolbar configuration including the editor view, features, and size.
 * @returns A `TNode` renderable containing the complete toolbar.
 *
 * @example
 * ```ts
 * ProseMirrorToolbar({
 *   view: editorViewSignal,
 *   stateUpdate: editorStateNotifier,
 *   features: signal(DEFAULT_FEATURES),
 *   readOnly: signal(false),
 *   size: 'sm',
 * })
 * ```
 */
export declare function ProseMirrorToolbar({ view, stateUpdate, features, readOnly, size, }: ProseMirrorToolbarOptions): import("@tempots/dom").Renderable;
