import { type LayoutStyle } from "../../style/index.js"; import { type RowMenuItem, type RowMenuSkin } from "./row-menu.styles.js"; export type { RowMenuItem }; export interface RowMenuProps { /** The menu rows, top to bottom. */ items: RowMenuItem[]; /** Controlled open state. Omit for uncontrolled (the trigger toggles it). */ open?: boolean; /** Fired when the open state changes. */ onOpenChange?: (open: boolean) => void; /** Render rows as navigation links rather than action buttons. */ links?: boolean; /** * The menu drawn in place, with no ⋯ trigger and no overlay: the action rows in the * menu's own panel, filling the width the parent gives it. With `links` it is a grouped * link list instead: hairline-split rows, each ending in its `badge` or `meta` and a * chevron. `open`, `onOpenChange` and `triggerLabel` do nothing here. */ inline?: boolean; /** Show a muted section label heading the menu. */ sectionLabel?: string; /** Fired with the selected item and its index when a row is pressed. */ onSelect?: (item: RowMenuItem, index: number) => void; /** Accessible name for the icon-only ⋯ trigger. Defaults to "More options". */ triggerLabel?: string; /** E2E hook forwarded to the root element. */ testID?: string; /** Composition within a parent only, never a restyle hook and never a width: the parent layout container provides the bounds. */ style?: LayoutStyle; } /** Build a RowMenu component from a platform skin. */ export declare function createRowMenu(skin: RowMenuSkin): (props: RowMenuProps) => import("react").JSX.Element; //# sourceMappingURL=row-menu.shared.d.ts.map