import { TextVariant } from "@artsy/palette-tokens/dist/typography/v3";
import { PressableProps } from "react-native";
import { HapticFeedbackTypes } from "react-native-haptic-feedback";
import { BoxProps } from "../Box";
export interface ButtonProps extends BoxProps {
children: React.ReactNode;
size?: "small" | "large";
variant?: "fillDark" | "fillLight" | "fillGray" | "fillSuccess" | "outline" | "outlineGray" | "outlineLight" | "text";
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_state?: DisplayState;
textVariant?: TextVariant;
}
declare enum DisplayState {
Enabled = "enabled",
Disabled = "disabled",
Loading = "loading",
Pressed = "pressed"
}
export declare const Button: React.FC;
export { DisplayState as _test_DisplayState };