import React from 'react'; import { TextStyle, ViewStyle } from 'react-native'; import { DynamicIconProps } from './DynamicIcon'; export interface ButtonStyles { root: ViewStyle; primary: ViewStyle; secondary: ViewStyle; default: ViewStyle; link: ViewStyle; fullWidth: ViewStyle; text: TextStyle; primaryText: TextStyle; secondaryText: TextStyle; defaultText: TextStyle; linkText: TextStyle; } export interface ButtonProps { [key: string]: any; children?: React.ReactNode; /** Ignored if children prop is provided. Otherwise this string is used. */ title?: string; color?: 'primary' | 'secondary' | 'error' | 'success' | 'warning' | string; /** Button variant */ variant?: 'text' | 'outlined' | 'contained'; /** * Callback function fired when button is pressed. */ onPress?: (event?: any) => any; /** * If true, renders a disabled button. */ disabled?: boolean; /** * If true, button is generated with 100% width of the container. */ fullWidth?: boolean; /** * The size of the button. */ size?: 'small' | 'medium' | 'large'; /** * Button Styles */ styles?: ButtonStyles; /** * Whether to show a loading indicator. */ loading?: boolean; /** * Icon to display for the Button. */ icon?: DynamicIconProps; /** * Whether the color is a dark color. A dark button will render light * text and vice-versa. Only applicable for contained mode. */ dark?: boolean; /** * Used to locate this view in end-to-end tests. */ testID?: string; } export declare const Button: React.ComponentType; /** * Default props for TextInput component */ export declare const ButtonDefaultProps: Partial;