import type { ViewStyle } from 'react-native'; import type { DeviceDisplayType } from '../device/device-type'; import type { Items } from '../models/items'; /** * The base's own place in the stack. Read here rather than through a shared * style registry on purpose: z-index is only meaningful to the widget wrapper * for now. */ export declare const Z_INDEX_WIDGET_ATTRIBUTE_NAME = "z-index-3-resolutions"; export declare const POINTER_EVENTS_WIDGET_ATTRIBUTE_NAME = "pointer-events-3-resolutions"; /** Base z-index when the author set none. */ export declare const DEFAULT_BASE_Z_INDEX = 0; export declare const OVERLAY_LAYER_POINTER_EVENTS: readonly ["auto", "none"]; export type OverlayLayerPointerEvents = (typeof OVERLAY_LAYER_POINTER_EVENTS)[number]; /** True when this Items asks for at least one layer over its rows. */ export declare function hasOverlayLayers(items: Items | undefined): boolean; export declare function overlayLayerTestID(layerIndex: number): string; /** * The base's z-index for this device, or 0 when unset or unusable. Accepts the * number and the numeric string, since hand-authored JSON produces both. */ export declare function resolveBaseZIndex({ containerAttributes, deviceDisplayType, }: { containerAttributes?: Record | null; deviceDisplayType: DeviceDisplayType; }): number; /** * Where a layer sits above a base at `baseZIndex`: the first layer takes * `baseZIndex + 1`, the second `baseZIndex + 2`, and so on. * * Derived from the position in the array, never from the layer itself, so a * layer that renders nothing — hidden at this width, or with no rows — leaves * its number unused rather than pulling the layers above it down. */ export declare function getOverlayLayerZIndex(baseZIndex: number, layerIndex: number): number; /** * A layer's `pointer-events` for this device, lifted from the layer's own * container settings. `undefined` leaves the property off the box entirely. * * Only `auto` and `none` are honoured. Anything else is treated as unset. */ export declare function resolveOverlayLayerPointerEvents({ containerAttributes, deviceDisplayType, }: { containerAttributes?: Record | null; deviceDisplayType: DeviceDisplayType; }): OverlayLayerPointerEvents | undefined; /** * True when a layer has nothing to put on screen at this width, so its box is * not worth emitting. Its z-index slot still goes unclaimed — see * getOverlayLayerZIndex. */ export declare function isOverlayLayerEmptyForDevice({ layer, deviceDisplayType, }: { layer: Items; deviceDisplayType: DeviceDisplayType; }): boolean; /** * Whether preview/published rendering should wrap the base in an overlay stack. * Compose mode ignores layers. A hidden or empty base is not a stack. */ export declare function shouldWrapInOverlayStack({ items, isComposeMode, }: { items: Items | undefined; isComposeMode: boolean; }): boolean; /** * The stack wrapper: containing block for every layer. React Native has no CSS * isolation; the stack is `position: 'relative'` so absolute layers stretch to * its padding box. A non-zero base z-index lands here. Nothing is emitted for * the default 0. */ export declare function buildOverlayStackStyles({ baseZIndex, }: { baseZIndex: number; }): ViewStyle; /** * One layer's box: out of flow so it cannot inflate the stack it is measuring * itself against, stretched with insets (not percentages) to that stack's * padding box. */ export declare function buildOverlayLayerBoxStyles({ zIndex, pointerEvents, }: { zIndex: number; pointerEvents?: OverlayLayerPointerEvents; }): ViewStyle; //# sourceMappingURL=resolve-overlay-layers.d.ts.map