import { BaseDirection, ParagraphDirectionContext } from '../../../../../../../layout-engine/contracts/src/index.js';
/**
 * Map a logical justification value to a physical one.
 *
 * `start` and `end` are direction-aware aliases for `left` and `right`.
 * `both` is full-justify; the others (left, right, center, distribute, kashida...)
 * pass through unchanged.
 */
export declare const resolveLogicalAlignment: (justification: string | undefined, context: ParagraphDirectionContext) => string | undefined;
/**
 * Logical indent fields can include `start`/`end` aliases. Map them to
 * physical `left`/`right` based on direction. If the indent already has
 * physical sides, those win (no clobbering).
 */
export declare const resolveLogicalIndent: <T extends Record<string, unknown>>(indent: T | undefined, context: ParagraphDirectionContext) => T | undefined;
/**
 * Direction-aware physical side resolver: returns the physical side a
 * caller should write to, given a logical side and the paragraph context.
 */
export declare const physicalSide: (logical: "start" | "end", context: ParagraphDirectionContext) => "left" | "right";
/** Convenience: is the paragraph context RTL? */
export declare const isRtl: (context: ParagraphDirectionContext | undefined) => boolean;
/** Convenience: extract a BaseDirection or undefined. */
export declare const toBaseDirection: (context: ParagraphDirectionContext | undefined) => BaseDirection | undefined;
//# sourceMappingURL=logicalSides.d.ts.map