import { ReactNode } from 'react'; export type SpecialButtonProps = { /** * Interaction mode: 'press' is hold-to-confirm (Figma: Press Button), * 'slider' is swipe-to-confirm (Figma: Swipe Button). * @default 'press' */ type?: 'press' | 'slider'; children?: ReactNode; /** Called once when the interaction completes (hold finished / knob dragged to the end). */ onConfirm?: () => void; disabled?: boolean; loading?: boolean; /** * Controlled success state. The component also enters success on its own * right after a completed interaction. */ success?: boolean; /** * Press only — time in milliseconds the user must keep pressing to confirm. * @default 1500 */ holdDuration?: number; /** Press only — stretches the button to fill the container width. */ expand?: 'x'; /** Slider only — visual variant (Figma: Swipe Button, ◇ Type Primary | Secondary). */ variant?: 'primary' | 'secondary'; /** Slider only — renders an empty skeleton placeholder. */ skeleton?: boolean; /** * Slider only — accessible label for the draggable knob. Pressing Enter or * Space on the focused knob confirms directly (keyboard alternative to the * swipe gesture). */ knobAriaLabel?: string; /** * Slider only — helper text shown below the button after an incomplete * drag, guiding the user to slide all the way to the end. * @default 'Arraste até o final para confirmar ação' */ incompleteHint?: ReactNode; 'data-testid'?: string; }; export declare const SpecialButton: ({ type, ...props }: SpecialButtonProps) => import("react/jsx-runtime").JSX.Element;