import { PressableProps } from "react-native";
import { HapticFeedbackTypes } from "react-native-haptic-feedback";
import { BoxProps } from "../Box";
type ButtonSize = "small" | "large";
type ButtonVariant = "fillDark" | "fillLight" | "fillGray" | "fillSuccess" | "outline" | "outlineGray" | "outlineLight" | "text";
export interface ButtonProps extends BoxProps {
children: React.ReactNode;
size?: ButtonSize;
variant?: ButtonVariant;
onPress?: PressableProps["onPress"];
icon?: React.ReactNode;
iconPosition?: "left" | "left-start" | "right";
/**
* `haptic` can be used like:
*
* or
*
* to add haptic feedback on the button.
*/
haptic?: HapticFeedbackTypes | true;
/** Displays a loader in the button */
loading?: boolean;
/** Disabled interactions */
disabled?: boolean;
/** Makes button full width */
block?: boolean;
/** Pass the longest text to the button for the button to keep longest text width */
longestText?: string;
/** Used only for tests and stories */
testOnly_pressed?: PressableProps["testOnly_pressed"];
}
export declare const Button: ({ children, disabled: disabledProp, haptic, icon, iconPosition, loading: loadingProp, block, longestText, onPress, size, variant, testOnly_pressed, testID, hitSlop, ...restProps }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
export {};