import { PureComponent } from 'react'; import type { ImageSourcePropType, ImageStyle, StyleProp, TextStyle, TouchableHighlightProperties, ViewStyle } from 'react-native'; import { stylesSize } from '../styles/Button'; import { palette } from '../styles/variables'; export interface ButtonProps extends Pick { title: string; dynamicTitleStates?: string[]; selectedTitleState?: number; accessibilityLabel?: string; onPress: () => void; onLongPress?: () => void; underlayColor?: string; icon?: ImageSourcePropType; style?: StyleProp; titleStyle?: StyleProp; iconStyle?: StyleProp; viewStyle?: StyleProp; palette?: typeof palette; color?: keyof typeof palette; size?: keyof typeof stylesSize; light?: boolean; link?: boolean; disabled?: boolean; loading?: boolean; full?: boolean; } export interface SerializableFSButtonProps extends Omit { style?: ViewStyle; titleStyle?: TextStyle; iconStyle?: ImageStyle; viewStyle?: ViewStyle; } export interface ButtonState { palette: Record; title: string; } export declare class Button extends PureComponent { private readonly renderButtonInner; state: ButtonState; componentDidUpdate(): void; render(): JSX.Element; get titleState(): string; }