import React from 'react';
import { ImageStyle, TextStyle, ViewStyle } from 'react-native';
import { BlueBaseImageProps } from './BlueBaseImage';
import { ButtonProps } from './Button';
import { TextProps } from './Text';
export interface ComponentStateStyles {
/** Action button container styles */
actionRoot?: ViewStyle;
/** Action button styles */
action?: ViewStyle;
/** Description text styles */
description?: TextStyle;
/** Styles of image container view */
imageRoot?: ViewStyle;
/** Image styles */
image?: ImageStyle;
/** Main root container styles */
root?: ViewStyle;
/** Title styles */
title?: TextStyle;
}
export interface ComponentStateProps {
/**
* Action button title
*/
actionTitle?: string;
/**
* Action button onPress callback function
*/
actionProps?: ButtonProps;
/**
* Action button onPress callback function
*/
actionOnPress?: ButtonProps['onPress'];
/**
* Description Text
*/
description?: any;
/**
* Description Text props
*/
descriptionProps?: TextProps;
/**
* A ReactNode to show custom UI, if provided, imageSource will be ignored
*/
image?: React.ReactNode;
/**
* Image source
*/
imageProps?: BlueBaseImageProps;
/**
* Image source
*/
imageSource?: BlueBaseImageProps['source'];
/**
* Title text
*/
title?: React.ReactNode;
/**
* Title text props
*/
titleProps?: TextProps;
styles?: ComponentStateStyles;
/**
* Used to locate this view in end-to-end tests.
*/
testID?: string;
}
/**
* # 🤡 ComponentState
*
* A generic component to show different states of a screen or a view. For example,
* you may need to:
*
* - Show a loading state when data is loading,
* - Show an empty state when there is not data to show on a screen.
* - Show an error message when an exception occurs during execution.
*
* These are just a few examples. This component displays a message with an image, a title,
* a description and a call to action button.
*
* ## Usage
* ```jsx
*
* ```
*/
export declare const ComponentState: React.ComponentType;