import { TabStop } from '../../../../../../../layout-engine/contracts/src/index.js';
/**
 * Normalize OOXML tab stops from various input formats to canonical TabStop format.
 *
 * Supports multiple input formats:
 * 1. SuperConverter format: { val, pos (in px), originalPos (in twips), leader }
 * 2. Super-editor format: { tab: { tabType, pos (in twips), leader } }
 *
 * Position resolution priority:
 * 1. originalPos (exact OOXML twips) - highest priority
 * 2. pos/position/offset with automatic px→twips conversion
 *
 * @param tabs - Array of tab stop objects in various formats
 * @returns Normalized array of TabStop objects in twips, or undefined if empty/invalid
 *
 * @example
 * // Super-editor format (nested, twips)
 * normalizeOoxmlTabs([{ tab: { tabType: 'left', pos: 4320 } }])
 * // Returns: [{ val: 'start', pos: 4320 }]
 *
 * @example
 * // SuperConverter format (flat, pixels with originalPos)
 * normalizeOoxmlTabs([{ val: 'center', pos: 48, originalPos: 720 }])
 * // Returns: [{ val: 'center', pos: 720 }] (uses originalPos)
 *
 * @example
 * // Mixed formats in same array
 * normalizeOoxmlTabs([
 *   { tab: { tabType: 'left', pos: 2880 } },
 *   { val: 'center', originalPos: 5760 }
 * ])
 * // Returns: [{ val: 'start', pos: 2880 }, { val: 'center', pos: 5760 }]
 */
export declare const normalizeOoxmlTabs: (tabs: unknown) => TabStop[] | undefined;
/**
 * Normalize tab alignment value to OOXML 'val' format.
 *
 * Maps legacy directional values ('left', 'right') to bidirectional-safe
 * values ('start', 'end') for proper RTL (right-to-left) text support.
 *
 * Supported OOXML values:
 * - start: Left-aligned in LTR, right-aligned in RTL
 * - center: Center-aligned
 * - end: Right-aligned in LTR, left-aligned in RTL
 * - decimal: Aligned on decimal separator
 * - bar: Vertical bar (not a tab stop, but a visual decoration)
 * - clear: Clears inherited tab stop
 *
 * @param value - Raw alignment value from input format
 * @returns Normalized OOXML alignment value, or undefined if invalid
 *
 * @example
 * normalizeTabVal('left') // Returns: 'start'
 * normalizeTabVal('right') // Returns: 'end'
 * normalizeTabVal('dec') // Returns: 'decimal'
 * normalizeTabVal('invalid') // Returns: undefined
 */
export declare const normalizeTabVal: (value: unknown) => TabStop["val"] | undefined;
/**
 * Normalize tab leader value to OOXML format.
 *
 * Tab leaders are visual decorations that fill the space created by a tab,
 * commonly used in tables of contents (dots leading to page numbers).
 *
 * Supported OOXML values:
 * - none: No leader (default)
 * - dot: Dotted line (e.g., "Chapter 1...........42")
 * - hyphen: Dashed line
 * - heavy: Thick solid line
 * - underscore: Thin solid line
 * - middleDot: Centered dot pattern
 *
 * @param value - Raw leader value from input format
 * @returns Normalized OOXML leader value, or undefined if invalid
 *
 * @example
 * normalizeTabLeader('dot') // Returns: 'dot'
 * normalizeTabLeader('thick') // Returns: 'heavy'
 * normalizeTabLeader('invalid') // Returns: undefined
 */
export declare const normalizeTabLeader: (value: unknown) => TabStop["leader"] | undefined;
//# sourceMappingURL=tabs.d.ts.map