import * as React from 'react'; import { TouchableOpacityProps as RNTouchableOpacityProps } from 'react-native'; import { ButtonType, Omit, Size, Palette } from 'bumbag/types'; import { BoxProps } from '../Box'; import { IconProps } from '../Icon'; import { SpinnerProps } from '../Spinner/Spinner'; export declare type LocalButtonProps = { /** Icon that appears on the right side of the button. */ iconAfter?: IconProps['icon']; iconAfterProps?: Omit; /** Icon that appears on the left side of the button. */ iconBefore?: IconProps['icon']; iconBeforeProps?: Omit; /** Adds a loading indicator to the button. */ isLoading?: boolean; /** Makes the button not interactable. */ isStatic?: boolean; palette?: Palette; size?: Size; /** Custom props for the isLoading spinner. */ spinnerProps?: SpinnerProps; /** Sets a throttle for the press event (`onPress`) to be only invoked at most once every `x` milliseconds. */ throttle?: boolean | number; type?: ButtonType; }; export declare type ButtonProps = BoxProps & RNTouchableOpacityProps & LocalButtonProps; export declare const ButtonContext: React.Context; export declare const Button: React.ForwardRefExoticComponent & import("react-native").ViewProps & import("../Box").LocalBoxProps & { active?: boolean; focus?: boolean; hover?: boolean; hoveractive?: boolean; } & RNTouchableOpacityProps & LocalButtonProps & React.RefAttributes> & { displayName?: string; useProps: (props?: Partial, config?: { disableCSSProps?: string[]; themeKey?: string; }) => any; };