/** * @fileoverview Direction utilities for RTL/LTR support * * Provides utilities for detecting and managing text directionality * based on locale and user preferences. */ /** * Text direction values */ export type DirectionValue = 'ltr' | 'rtl'; /** * Direction preference options * - 'auto': Automatically detect from locale * - 'ltr': Force left-to-right * - 'rtl': Force right-to-left */ export type DirectionPreference = 'auto' | 'ltr' | 'rtl'; /** * Detects text direction from a locale string * * @param locale - Locale string (e.g., 'en-US', 'ar-SA', 'he-IL') * @returns Direction value ('ltr' or 'rtl') * * @example * ```typescript * getDirectionFromLocale('en-US') // 'ltr' * getDirectionFromLocale('ar-SA') // 'rtl' * getDirectionFromLocale('he') // 'rtl' * ``` */ export declare function getDirectionFromLocale(locale: string): DirectionValue; /** * Resolves the final direction based on preference and locale * * @param preference - User's direction preference * @param locale - Current locale string * @returns Final direction value * * @example * ```typescript * resolveDirection('auto', 'ar-SA') // 'rtl' * resolveDirection('ltr', 'ar-SA') // 'ltr' (forced) * resolveDirection('rtl', 'en-US') // 'rtl' (forced) * ``` */ export declare function resolveDirection(preference: DirectionPreference, locale: string): DirectionValue; /** * Generates CSS class name for direction * * @param direction - Direction value * @returns CSS class name * * @example * ```typescript * getDirectionClassName('ltr') // 'b-ltr' * getDirectionClassName('rtl') // 'b-rtl' * ``` */ export declare function getDirectionClassName(direction: DirectionValue): string; /** * Checks if a locale is RTL * * @param locale - Locale string to check * @returns True if the locale is RTL * * @example * ```typescript * isRTLLocale('ar-SA') // true * isRTLLocale('en-US') // false * ``` */ export declare function isRTLLocale(locale: string): boolean; /** * Gets the opposite direction * * @param direction - Current direction * @returns Opposite direction * * @example * ```typescript * getOppositeDirection('ltr') // 'rtl' * getOppositeDirection('rtl') // 'ltr' * ``` */ export declare function getOppositeDirection(direction: DirectionValue): DirectionValue; /** * Direction-aware logical property mappings * Maps logical properties to physical properties based on direction */ export declare const LOGICAL_PROPERTY_MAP: { readonly ltr: { readonly 'inline-start': "left"; readonly 'inline-end': "right"; readonly 'block-start': "top"; readonly 'block-end': "bottom"; }; readonly rtl: { readonly 'inline-start': "right"; readonly 'inline-end': "left"; readonly 'block-start': "top"; readonly 'block-end': "bottom"; }; }; /** * Gets physical property name from logical property based on direction * * @param logicalProperty - Logical property name * @param direction - Text direction * @returns Physical property name * * @example * ```typescript * getPhysicalProperty('inline-start', 'ltr') // 'left' * getPhysicalProperty('inline-start', 'rtl') // 'right' * ``` */ export declare function getPhysicalProperty(logicalProperty: keyof typeof LOGICAL_PROPERTY_MAP.ltr, direction: DirectionValue): string;