/** * StickyHeaders component manages the sticky header behavior in a FlashList. * It handles the animation and positioning of headers that should remain fixed * at the top of the list while scrolling. */ import React from "react"; import { Animated, NativeScrollEvent } from "react-native"; import { FlashListProps } from "../.."; import { RecyclerViewManager } from "../RecyclerViewManager"; /** * Props for the StickyHeaders component * @template TItem - The type of items in the list */ export interface StickyHeaderProps { /** Array of indices that should have sticky headers */ stickyHeaderIndices: number[]; /** Offset from the top where sticky headers should stick (in pixels) */ stickyHeaderOffset: number; /** Sticky header change handler */ onChangeStickyIndex: (index: number) => void; /** The data array being rendered */ data: ReadonlyArray; /** Animated value tracking scroll position */ scrollY: Animated.Value; /** Function to render each item */ renderItem: FlashListProps["renderItem"]; /** Ref to access sticky header methods */ stickyHeaderRef: React.RefObject; /** Manager for recycler view operations */ recyclerViewManager: RecyclerViewManager; /** Additional data to trigger re-renders */ extraData: FlashListProps["extraData"]; /** Whether the list is inverted */ inverted: FlashListProps["inverted"]; } /** * Ref interface for StickyHeaders component */ export interface StickyHeaderRef { /** Reports scroll events to update sticky header positions */ reportScrollEvent: (event: NativeScrollEvent) => void; } export declare const StickyHeaders: ({ stickyHeaderIndices, stickyHeaderOffset, renderItem, stickyHeaderRef, recyclerViewManager, scrollY, data, extraData, onChangeStickyIndex, inverted, }: StickyHeaderProps) => React.JSX.Element | null; //# sourceMappingURL=StickyHeaders.d.ts.map