import React from 'react'; import type { ButtonButtonProps } from '@gravity-ui/uikit'; import type { SuggestionClickHandler, SuggestionsItem } from "../../../types/common.js"; import "./EmptyContainer.css"; /** * Suggestion item for EmptyContainer */ export type Suggestion = SuggestionsItem; /** * Alignment options for content elements */ export type ContentAlignment = 'left' | 'center' | 'right'; /** * Alignment configuration for different sections */ export interface AlignmentConfig { /** Alignment for the image */ image?: ContentAlignment; /** Alignment for custom hero content; falls back to image alignment. */ hero?: ContentAlignment; /** Alignment for the title */ title?: ContentAlignment; /** Alignment for the description */ description?: ContentAlignment; } /** * Props for the EmptyContainer component */ export interface EmptyContainerProps { /** Image or icon to display at the top */ image?: React.ReactNode; /** Custom hero content that replaces image when provided. */ heroContent?: React.ReactNode; /** Title text or custom React element for the welcome screen */ title?: React.ReactNode; /** Description text or custom React element explaining the functionality */ description?: React.ReactNode; /** Title for the suggestions section - can be string or custom React element */ suggestionTitle?: React.ReactNode; /** Array of suggestion items */ suggestions?: Suggestion[]; /** Callback when a suggestion is clicked */ onSuggestionClick?: SuggestionClickHandler; /** Alignment configuration for image, title, and description */ alignment?: AlignmentConfig; /** Layout orientation for suggestions: 'grid' for horizontal, 'list' for vertical */ layout?: 'grid' | 'list'; /** Enable text wrapping inside suggestion buttons instead of ellipsis */ wrapText?: boolean; /** Size of suggestion buttons. Defaults to `m`, or `xl` in mobile mode */ suggestionsSize?: ButtonButtonProps['size']; /** Callback for showing more suggestions */ showMore?: () => void; /** Size of the show more button. Defaults to `l`, or `xl` in mobile mode */ showMoreSize?: ButtonButtonProps['size']; /** Custom text for the show more button */ showMoreText?: string; /** Additional CSS class */ className?: string; /** QA/test identifier */ qa?: string; } /** * EmptyContainer component - displays a welcome screen with image, title, description, * and suggestions * * @param props - Component props * @returns React component */ export declare function EmptyContainer(props: EmptyContainerProps): import("react/jsx-runtime").JSX.Element;