import { InlineToggleDirective, MarkKey } from '@superdoc/document-api'; interface PmMark { type: { name: string; create: (attrs?: Record | null) => PmMark; }; attrs: Record; eq: (other: PmMark) => boolean; } interface PmMarkType { create: (attrs?: Record | null) => PmMark; } interface ToggleMarkSpec { schemaName: string; isOff: (mark: PmMark) => boolean; isOn: (mark: PmMark) => boolean; offAttrs: Record; createOn: (markType: PmMarkType, existingMark?: PmMark) => PmMark; } /** * Core-4 toggle OFF values seen across import paths: * - canonical string token: `'0'` * - legacy/strict parser boolean token: `false` * - numeric token from permissive decoders: `0` */ export declare function isSimpleToggleOffValue(value: unknown): boolean; /** Canonical mark spec table for core-4 toggle marks. */ export declare const TOGGLE_MARK_SPECS: Record; /** * Derives the direct toggle state of a mark from the PM mark set. * * - Mark present with ON attrs → `'on'` * - Mark present with OFF attrs → `'off'` * - Mark absent → `'clear'` */ export declare function deriveToggleState(marks: readonly PmMark[], markKey: MarkKey): InlineToggleDirective; /** * Applies an inline toggle directive to a mark array, returning the new mark set. * This is the shared logic used by both the executor and style-resolver. */ export declare function applyDirectiveToMarks(marks: readonly PmMark[], markKey: MarkKey, directive: InlineToggleDirective, markType: PmMarkType): PmMark[]; export {}; //# sourceMappingURL=mark-directives.d.ts.map