import type React from 'react'; import { type ButtonHTMLAttributes, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'; export type DropdownOption = { value: T; label: ReactNode; /** Non-selectable informational entry (e.g. a mode the current CLI can't use). */ disabled?: boolean; }; export declare function dropdownLabel(options: DropdownOption[], value: T): ReactNode; export declare function Html(props: { html: string; as?: 'span' | 'div'; }): React.JSX.Element; export declare function LoadingState(props: { label: ReactNode; className?: string; compact?: boolean; }): React.JSX.Element; export declare function SectionHeader(props: { title: ReactNode; count?: ReactNode; hint?: ReactNode; children?: ReactNode; }): React.JSX.Element; export declare function HeaderAction(props: { href: string; children: ReactNode; }): React.JSX.Element; export declare function HeaderControls(props: { children: ReactNode; }): React.JSX.Element; type ActionButtonProps = ButtonHTMLAttributes & { children: ReactNode; }; export declare function CreateActionButton(props: ActionButtonProps): React.JSX.Element; export declare function RefreshIconButton(props: Omit, 'children'> & { label: string; busy?: boolean; }): React.JSX.Element; /** * Native modal dialogs live in the browser's top layer. A floating element * portaled to document.body therefore stays behind an open dialog regardless * of its z-index. Keep floating UI in the nearest open dialog when there is * one, while retaining document.body as the normal page-level host. */ export declare function floatingPortalHost(anchor: Element | null, fallback: HTMLElement): Element; export declare function InfoTip(props: { children: ReactNode; label?: string; className?: string; trigger?: ReactNode; preventClick?: boolean; focusable?: boolean; }): React.JSX.Element; export declare function OverflowText(props: { text: string; children?: ReactNode; className?: string; textClassName?: string; popoverClassName?: string; showPopover?: boolean; durationMs?: number; }): React.JSX.Element; export declare function FieldTitle(props: { children: ReactNode; help?: ReactNode; helpLabel?: string; className?: string; }): React.JSX.Element; export declare function OverviewList(props: { id?: string; className?: string; children: ReactNode; }): React.JSX.Element; export declare function OverviewListItem(props: HTMLAttributes & { kind?: 'session' | 'schedule' | 'group'; children: ReactNode; }): React.JSX.Element; export declare function OverviewListMain(props: { children: ReactNode; }): React.JSX.Element; export declare function OverviewListTail(props: { children: ReactNode; }): React.JSX.Element; type DropdownMenuProps = { id?: string; className?: string; ariaLabel?: string; disabled?: boolean; hidden?: boolean; style?: CSSProperties; label: ReactNode; value: T; options: DropdownOption[]; onChange: (value: T) => void; /** Filter box at the top of the popup, for long option lists (e.g. 20+ CLIs). */ searchable?: boolean; searchPlaceholder?: string; /** Shown instead of options when the filter matches nothing. */ searchEmptyLabel?: ReactNode; }; export declare function DropdownMenu(props: DropdownMenuProps): React.JSX.Element; export declare function SortMenu(props: DropdownMenuProps): React.JSX.Element; export {}; //# sourceMappingURL=dashboard-components.d.ts.map