import React from "react"; import { GestureResponderEvent, View, ViewProps } from "react-native"; import { IconName } from "../Icon"; export type ButtonSpecificProps = { /** * Label text of the button. */ title: string; /** * Color theme of the button. */ color?: "primary" | "secondary" | "danger"; /** * Button variant. This value works with the `color` prop to set the theming of the button. */ variant?: "contained" | "outlined" | "ghost"; /** * Boolean value indicating whether or not the button is in its disabled state. */ disabled?: boolean; /** * Boolean value indicating whether or not the button should be in its loading state. */ loading?: boolean; /** * Boolean value that floats icon to the edges of the button while the text stay centered. */ fullWidth?: boolean; /** * Name of the icon to use with the title. */ iconName?: IconName; /** * Options for positioning the icon either to the left or to the right of the label text. */ iconPosition?: "leading" | "trailing"; /** * Callback method invoked when the user presses the button. */ onPress?: () => void; /** * Callback method invoked when the user presses in the button. */ onPressIn?: (event: GestureResponderEvent) => void; /** * Callback method invoked when the user presses out the button. */ onPressOut?: (event: GestureResponderEvent) => void; }; export type ButtonProps = ButtonSpecificProps & ViewProps; export declare const Button: React.ForwardRefExoticComponent>;