import { ReactElement } from 'react'; import { ViewStyle, TextStyle } from 'react-native'; import { ButtonType } from '../../types'; import { TouchableProps } from '../touchable'; export interface ButtonIconProps { topIcon?: ReactElement; topIconContainerStyle?: ViewStyle; topIconAction?(): void; leftIcon?: ReactElement; leftIconContainerStyle?: ViewStyle; leftIconAction?(): void; rightIcon?: ReactElement; rightIconContainerStyle?: ViewStyle; rightIconAction?(): void; bottomIcon?: ReactElement; bottomIconContainerStyle?: ViewStyle; bottomIconAction?(): void; } export interface ButtonTypeProps { type?: ButtonType; } export interface ButtonTitleProps { title?: string; titleStyle?: TextStyle; titleContainerStyle?: ViewStyle; } export interface ButtonBaseProps { containerStyle?: ViewStyle; disabledContainerStyle?: ViewStyle; disabledTitleStyle?: ViewStyle; } export interface ButtonProps extends TouchableProps, ButtonIconProps, ButtonTypeProps, ButtonTitleProps, ButtonBaseProps { raised?: boolean; raisedStyle?: ViewStyle; } export default function Button({ type, raised, raisedStyle, containerStyle, title, titleStyle, titleContainerStyle, disabled, disabledContainerStyle, disabledTitleStyle, topIcon, topIconContainerStyle, topIconAction, leftIcon, leftIconContainerStyle, leftIconAction, rightIcon, rightIconContainerStyle, rightIconAction, bottomIcon, bottomIconContainerStyle, bottomIconAction, children, ...props }: ButtonProps): JSX.Element;