import * as React from 'react'; import { ViewStyle, StyleProp, GestureResponderEvent, TouchableWithoutFeedback } from 'react-native'; import TouchableRipple from './TouchableRipple/TouchableRipple'; import { IconSource } from './Icon'; import type { $RemoveChildren } from '../types'; declare type Props = $RemoveChildren & { /** * Icon to display. */ icon: IconSource; /** * Color of the icon. */ color?: string; /** * Size of the icon. */ size?: number; /** * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch. */ disabled?: boolean; /** * Whether an icon change is animated. */ animated?: boolean; /** * Accessibility label for the button. This is read by the screen reader when the user taps the button. */ accessibilityLabel?: string; /** * Function to execute on press. */ onPress?: (e: GestureResponderEvent) => void; style?: StyleProp; ref?: React.RefObject; /** * @optional */ theme: ReactNativePaper.Theme; }; declare const _default: React.ComponentType & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }, keyof import("react-native").TouchableWithoutFeedbackProps | "background" | "borderless" | "rippleColor" | "underlayColor" | "centered" | keyof React.RefAttributes> & { /** * Size of the icon. */ theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }> & { ({ style, background: _background, borderless, disabled: disabledProp, rippleColor, underlayColor: _underlayColor, children, theme, ...rest }: import("react-native").TouchableWithoutFeedbackProps & React.RefAttributes & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }): JSX.Element; supported: boolean; }, {}>> & { /** * Icon to display. */ icon: IconSource; /** * Color of the icon. */ color?: string | undefined; /** * Size of the icon. */ size?: number | undefined; /** * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch. */ disabled?: boolean | undefined; /** * Whether an icon change is animated. */ animated?: boolean | undefined; /** * Accessibility label for the button. This is read by the screen reader when the user taps the button. */ accessibilityLabel?: string | undefined; /** * Function to execute on press. */ onPress?: ((e: GestureResponderEvent) => void) | undefined; style?: StyleProp; ref?: React.RefObject | undefined; /** * @optional */ theme: ReactNativePaper.Theme; }, "style" | "color" | "size" | "onLayout" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "testID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "icon" | "ref" | "key" | "hitSlop" | "delayLongPress" | "delayPressIn" | "delayPressOut" | "disabled" | "onBlur" | "onFocus" | "pressRetentionOffset" | "touchSoundDisabled" | "background" | "borderless" | "rippleColor" | "underlayColor" | "centered" | "animated"> & { /** * Size of the icon. */ theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }, keyof import("react-native").TouchableWithoutFeedbackProps | "background" | "borderless" | "rippleColor" | "underlayColor" | "centered" | keyof React.RefAttributes> & { /** * Size of the icon. */ theme?: import("@callstack/react-theme-provider").$DeepPartial | undefined; }> & import("@callstack/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }> & { ({ style, background: _background, borderless, disabled: disabledProp, rippleColor, underlayColor: _underlayColor, children, theme, ...rest }: import("react-native").TouchableWithoutFeedbackProps & React.RefAttributes & { borderless?: boolean | undefined; background?: Object | undefined; centered?: boolean | undefined; disabled?: boolean | undefined; onPress?: ((e: GestureResponderEvent) => void) | undefined; onLongPress?: ((e: GestureResponderEvent) => void) | undefined; rippleColor?: string | undefined; underlayColor?: string | undefined; children: React.ReactNode; style?: StyleProp; theme: ReactNativePaper.Theme; }): JSX.Element; supported: boolean; }, {}>> & { /** * Icon to display. */ icon: IconSource; /** * Color of the icon. */ color?: string | undefined; /** * Size of the icon. */ size?: number | undefined; /** * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch. */ disabled?: boolean | undefined; /** * Whether an icon change is animated. */ animated?: boolean | undefined; /** * Accessibility label for the button. This is read by the screen reader when the user taps the button. */ accessibilityLabel?: string | undefined; /** * Function to execute on press. */ onPress?: ((e: GestureResponderEvent) => void) | undefined; style?: StyleProp; ref?: React.RefObject | undefined; /** * @optional */ theme: ReactNativePaper.Theme; }> & (({ icon, color: customColor, size, accessibilityLabel, disabled, onPress, animated, theme, style, ...rest }: Props) => JSX.Element), {}>; export default _default;