import type { RoadmapItem, RoadmapStatus } from "convex-feedback"; import type { ReactElement, ReactNode } from "react"; import { type StyleProp, type ViewProps, type ViewStyle } from "react-native"; export interface RoadmapBoardStage { value: RoadmapStatus; label: string; } export interface RoadmapBoardItemRenderArgs { item: RoadmapItem; stage: RoadmapBoardStage; stageIndex: number; onOpen: () => void; } export interface RoadmapBoardProps { /** Items are grouped into columns using their current status. */ items: readonly RoadmapItem[]; /** Ordered columns rendered from left to right. */ stages: readonly RoadmapBoardStage[]; /** Shows the same full-board loading state as the admin roadmap. */ loading?: boolean; /** Copy shown when a column does not contain any items. */ emptyLabel: string; /** Opens a roadmap item from any rendered card. */ onItemOpen: (item: RoadmapItem) => void; /** Supplies the card UI so admin and user-facing cards can differ. */ renderItem: (args: RoadmapBoardItemRenderArgs) => ReactElement | null; /** * Additional top space reserved for content behind a transparent native * stack header. Defaults to `0`; pass the full header height when the host * renders the board under a transparent header. */ topInset?: number; /** * Total bottom space reserved for a host navigation bar or overlay. Defaults * to the bottom safe-area inset. An explicit value replaces that default, * including `0`. */ bottomInset?: number; style?: StyleProp; contentContainerStyle?: StyleProp; /** Additional styles for each stage column. */ stageStyle?: StyleProp; } export interface RoadmapBoardCardProps extends Pick { onPress: () => void; children: ReactNode; style?: StyleProp; } /** Shared admin-style pressable card shell with configurable contents. */ export declare function RoadmapBoardCard({ onPress, accessibilityLabel, children, style, }: RoadmapBoardCardProps): import("react").JSX.Element; /** * Shared stage-board layout used by the public roadmap and admin app. * * The outer list scrolls horizontally while each stage owns its vertical * `FlatList`, matching the admin board's bounded nested-scroll structure. * `bottomInset` is treated as total host-occupied space, so a caller that * renders an overlay must include both the overlay and any safe-area space. */ export declare function RoadmapBoard({ items, stages, loading, emptyLabel, onItemOpen, renderItem, topInset, bottomInset, style, contentContainerStyle, stageStyle, }: RoadmapBoardProps): import("react").JSX.Element; //# sourceMappingURL=RoadmapBoard.d.ts.map