import { CorePropertyId } from '../inline-semantics/property-ids.js'; export type NonUniformStrategy = 'error' | 'useLeadingRun' | 'majority' | 'union'; /** * Canonical mark key set: derived from inline-semantics property IDs. * Retained for backward compatibility; prefer {@link CORE_PROPERTY_IDS} in new code. */ export declare const MARK_KEYS: readonly ["bold", "italic", "underline", "strike"]; /** A single canonical mark key. Equivalent to {@link CorePropertyId}. */ export type MarkKey = CorePropertyId; /** Runtime set for O(1) mark key validation. Equivalent to {@link CORE_PROPERTY_ID_SET}. */ export declare const MARK_KEY_SET: ReadonlySet; /** Canonical directive vocabulary for inline toggle properties. */ export declare const INLINE_DIRECTIVES: readonly ["on", "off", "clear"]; /** A single inline toggle directive. */ export type InlineToggleDirective = (typeof INLINE_DIRECTIVES)[number]; /** Runtime set for O(1) directive validation. */ export declare const INLINE_DIRECTIVE_SET: ReadonlySet; /** * Inline toggle directives for core-4 marks. * * - `'on'` : write direct ON formatting. * - `'off'` : write explicit run-level OFF/negation override. * - `'clear'`: remove direct run-level property (inherit from style cascade). */ export interface SetMarks { bold?: InlineToggleDirective; italic?: InlineToggleDirective; underline?: InlineToggleDirective; strike?: InlineToggleDirective; } export interface InlineStylePolicy { mode: 'preserve' | 'set' | 'clear' | 'merge'; requireUniform?: boolean; onNonUniform?: NonUniformStrategy; setMarks?: SetMarks; } export interface ParagraphStylePolicy { mode: 'preserve' | 'set' | 'clear'; } export interface StylePolicy { inline: InlineStylePolicy; paragraph?: ParagraphStylePolicy; } export interface InsertStylePolicy { inline: { mode: 'inherit' | 'set' | 'clear'; setMarks?: SetMarks; }; } //# sourceMappingURL=style-policy.types.d.ts.map