import { type Define } from '@sigx/lynx'; export type SwipeSide = 'left' | 'right'; export type SwipeableProps = Define.Prop<'leftActionsWidth', number, false> & Define.Prop<'rightActionsWidth', number, false> & Define.Prop<'snapThreshold', number, false> & Define.Prop<'snapDuration', number, false> & Define.Prop<'leftActions', () => unknown, false> & Define.Prop<'rightActions', () => unknown, false> & Define.Prop<'class', string, false> & Define.Prop<'style', Record, false> & Define.Prop<'foregroundStyle', Record, false> & Define.Slot<'default'> & Define.Event<'swipeOpen', { side: SwipeSide; }> & Define.Event<'swipeClose', void>; /** * Horizontal swipe-to-reveal container, built on the native gesture arena * via `Gesture.Pan().axis('x')`. The foreground is dragged horizontally on * the MT thread; on release it snaps to one of three resting positions * (closed / open-left / open-right) using `MTElementWrapper.animate()`. * Open and close events are dispatched to BG via `runOnBackground`. * * Migrated from a 4-`bindtouch*`-worklet implementation to a single * `Gesture.Pan()` (Phase 2.12). Carries the same Phase 2.11 quirks: * - `.onBegin(() => {})` no-op is load-bearing on iOS Pan to gate * `_isInvokedBegin` open so onStart/onEnd fire. * - `e.params.pageX` (not `e.pageX`) — Lynx pan event nests the touch * payload under `params`. * * Supply `leftActions` and/or `rightActions` as render-prop functions: * * ```tsx * Delete} * onSwipeOpen={(e) => console.log('opened', e.side)} * > * Row content * * ``` * * **Scroll composition** (Phase 2.12.3): nesting `` inside * `` is automatic — `useScrollContext` is read at setup and * the BG-side onStart/onEnd handlers flip `scrollCtx.dragging` so the * parent yields its UIKit pan for the duration of the swipe. No consumer * wiring required. */ export declare const Swipeable: import("@sigx/runtime-core").ComponentFactory import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null) | undefined; }>; //# sourceMappingURL=Swipeable.d.ts.map