import { ImageBlock, DrawingBlock } from './index.js';
/** Checks whether `value` is a non-null, non-array object. */
export declare const isPlainObject: (value: unknown) => value is Record<string, unknown>;
/**
 * Base value for OOXML relativeHeight z-ordering.
 *
 * @example
 * - 251658240 → 0 (base/background)
 * - 251658242 → 2 (slightly above base)
 * - 251658291 → 51 (further above)
 */
export declare const OOXML_Z_INDEX_BASE = 251658240;
/**
 * Coerces relativeHeight from OOXML (number or string) to a finite number.
 */
export declare function coerceRelativeHeight(raw: unknown): number | undefined;
/**
 * Normalizes z-index from OOXML relativeHeight value.
 *
 * OOXML uses large numbers starting around 251658240. To preserve the relative
 * stacking order, we subtract the base value to get a small positive number
 * suitable for CSS z-index. This ensures elements with close relativeHeight
 * values maintain their correct stacking order.
 *
 * @param originalAttributes - The originalAttributes object from ProseMirror node attrs
 * @returns Normalized z-index number or undefined if no relativeHeight
 *
 * @example
 * ```typescript
 * normalizeZIndex({ relativeHeight: 251658240 }); // 0 (background)
 * normalizeZIndex({ relativeHeight: 251658242 }); // 2 (above background)
 * normalizeZIndex({ relativeHeight: 251658291 }); // 51 (further above)
 * normalizeZIndex({}); // undefined
 * normalizeZIndex(null); // undefined
 * ```
 */
export declare function normalizeZIndex(originalAttributes: unknown): number | undefined;
/**
 * Resolves floating z-index based on behindDoc flag and raw OOXML value.
 */
export declare function resolveFloatingZIndex(behindDoc: boolean, raw: number | undefined, fallback?: number): number;
/**
 * Returns z-index for an image or drawing block.
 * Uses block.zIndex when present, otherwise derives from originalAttributes.
 */
export declare function getFragmentZIndex(block: ImageBlock | DrawingBlock): number;
//# sourceMappingURL=ooxml-z-index.d.ts.map