import { ReactNode } from 'react';
import { ErrorStateProps } from '../ErrorState';
import { EmptyStateProps } from '../EmptyState';
export type FullEmptyProps = {
    show: boolean;
} & EmptyStateProps;
export type FullErrorProps = {
    show: boolean;
} & ErrorStateProps;
export interface AsyncProps {
    grow?: boolean;
    children?: ReactNode;
    className?: string;
    /**
     * Name of the represented entity
     * Provide pluralized
     * @example "users"
     * */
    entityName?: string;
    empty?: boolean | FullEmptyProps;
    error?: boolean | FullErrorProps;
    loading?: boolean;
    /**
     * Can be used to wrap state with custom container
     * */
    renderState?: (specialState: ReactNode) => ReactNode;
}
/**
 * Generic async container
 * Handles common data states: empty, error and loading
 * */
export declare const Async: ({ entityName, empty: emptyProp, error: errorProp, loading, renderState, children, grow, className, }: AsyncProps) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
