import React from 'react'; import { FlintSpeedDial as FlintSpeedDialElement } from '@getufy/flint-ui/speed-dial/flint-speed-dial'; export interface FlintSpeedDialOpenDetail { open: true; } export interface FlintSpeedDialCloseDetail { open: false; } /** * Speed Dial — a FAB that reveals 3-6 related actions when pressed. * * @slot (default) - `flint-speed-dial-action` elements. * @slot icon - Icon shown on the FAB when closed (default: + SVG). * @slot open-icon - Icon shown on the FAB when open (default: x SVG). */ export interface FlintSpeedDialProps extends Omit, 'hidden'> { /** Whether the speed dial is open (controlled). */ open?: boolean; /** Initial open state for uncontrolled usage. Sets `open` once on first render. */ defaultOpen?: boolean; /** * Direction in which actions expand from the FAB (default 'up'). * Allowed values: 'up' | 'down' | 'left' | 'right' */ direction?: 'up' | 'down' | 'left' | 'right'; /** Hides the entire speed dial component. */ hidden?: boolean; /** Disables the FAB and prevents opening. */ disabled?: boolean; /** When true, tooltips on all actions are always visible (good for touch/a11y). */ persistentTooltips?: boolean; /** Custom char/text rendered as the x close icon on the FAB. Falls back to built-in SVG. */ closeIcon?: string; /** ARIA label for the main FAB button. */ ariaLabel?: string; /** True on touch-only devices (auto-detected unless explicitly set). */ isTouch?: boolean; /** * Fired when the dial opens. detail: `{ open: true }` * DOM event: `flint-speed-dial-open` */ onFlintSpeedDialOpen?: (event: CustomEvent) => void; /** * Fired when the dial closes. detail: `{ open: false }` * DOM event: `flint-speed-dial-close` */ onFlintSpeedDialClose?: (event: CustomEvent) => void; } export declare const FlintSpeedDial: React.ForwardRefExoticComponent>;