import { CommentsSlice, ContentControlsSlice, DocumentSlice, TrackChangesSlice, SelectionSlice, ToolbarSnapshotSlice, UIToolbarCommandState } from '../types.js';
/**
 * Subscribe to the current selection slice.
 *
 * Returns the full {@link SelectionSlice} — empty/target/selectionTarget
 * (SD-2812)/activeMarks/activeCommentIds/activeChangeIds/quotedText.
 * Use the returned `target` for `editor.doc.comments.create({ target })`
 * and the `selectionTarget` for `editor.doc.insert({ target })`.
 */
export declare function useSuperDocSelection(): SelectionSlice;
/** Subscribe to the comments slice (items, activeIds, total). */
export declare function useSuperDocComments(): CommentsSlice;
/** Subscribe to the tracked-changes slice (items, total, activeId). */
export declare function useSuperDocTrackChanges(): TrackChangesSlice;
/**
 * Subscribe to the content-controls (SDT) slice (items, activeIds,
 * activeId, total). Pair with `ui.contentControls.getRect({ id })` to
 * anchor custom field chips, citation popovers, or property panels to
 * the painted wrapper of the active control.
 *
 * ```tsx
 * const { activeId } = useSuperDocContentControls();
 * const ui = useSuperDocUI();
 * if (!activeId || !ui) return null;
 * const r = ui.contentControls.getRect({ id: activeId });
 * if (!r.success) return null;
 * return <Popover style={{ position: 'fixed', left: r.rect.left, top: r.rect.top }} />;
 * ```
 */
export declare function useSuperDocContentControls(): ContentControlsSlice;
/** Subscribe to the full toolbar snapshot (context + per-command states). */
export declare function useSuperDocToolbar(): ToolbarSnapshotSlice;
/**
 * Subscribe to the document slice (`{ ready, mode }`). Pair with
 * `useSuperDocUI()?.document.setMode(...)` and `.export(...)` /
 * `.replaceFile(...)` to drive a document bar / Export button / mode
 * toggle from one subscription.
 */
export declare function useSuperDocDocument(): DocumentSlice;
/**
 * Subscribe to a single command's state by id.
 *
 * Works for both built-in command ids (`'bold'`, `'italic'`, …) and
 * custom command ids registered via `ui.commands.register(...)`. The
 * returned object includes `active`, `disabled`, `value`, and the
 * `source` discriminator (`'built-in' | 'custom'`).
 *
 * Returns the fallback disabled state until the editor is ready or
 * while the id isn't registered.
 *
 * ```tsx
 * const bold = useSuperDocCommand('bold');
 * <button data-active={bold.active} disabled={bold.disabled}>B</button>
 * ```
 *
 * Implementation note: this hook bypasses {@link useSuperDocSlice}
 * because the selector closes over `id`. `useSuperDocSlice`'s
 * subscription effect re-runs only when the controller swaps, so a
 * toolbar component reused with a different command id under the
 * same provider would otherwise keep emitting state for the prior
 * id. Subscribing here with `[ui, id]` deps fixes the resubscription
 * the substrate alone can't see.
 */
export declare function useSuperDocCommand(id: string): UIToolbarCommandState;
//# sourceMappingURL=hooks.d.ts.map