/**
 * @file EmptyState.tsx
 * @input Uses React, HTMLAttributes
 * @output Exports EmptyState component, EmptyStateProps type
 * @position Core implementation; consumed by index.ts
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/EmptyState/EmptyState.doc.mjs (props table, features, implementation notes)
 * - /packages/core/src/EmptyState/EmptyState.test.tsx (tests for new/changed behavior)
 * - /packages/core/src/EmptyState/index.ts (exports if types change)
 * - /apps/storybook/stories/EmptyState.stories.tsx (storybook stories)
 * - /packages/cli/assets/templates/blocks/components/EmptyState/ (showcase blocks)
 */
import { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
export interface EmptyStateProps extends BaseProps<HTMLDivElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLDivElement>;
    /**
     * The primary message displayed in the empty state.
     */
    title: string;
    /**
     * Optional secondary text providing additional context.
     */
    description?: string;
    /**
     * Optional icon or illustration displayed above the title.
     * Rendered as decorative (aria-hidden="true").
     */
    icon?: ReactNode;
    /**
     * Optional action buttons displayed below the description.
     * Laid out horizontally by default, stacked vertically when `isCompact`.
     */
    actions?: ReactNode;
    /**
     * Semantic heading level for the title element.
     * Controls only the rendered HTML tag (h1–h6) so the title fits the
     * document outline. This is a semantic change for accessibility and does
     * not change the visual size of the title, which stays fixed regardless
     * of level.
     * @default 3
     */
    headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
    /**
     * Use compact variant for constrained spaces with reduced spacing.
     * @default false
     */
    isCompact?: boolean;
}
/**
 * An empty state placeholder for content areas with no data.
 * Displays an icon or illustration, title, optional description, and action buttons.
 *
 * Uses `role="status"` to announce content to screen readers.
 * Styles use Astryx theme tokens via StyleX. Wrap your app in <Theme> to apply a theme.
 *
 * @example
 * ```
 * <EmptyState
 *   title="No results found"
 *   description="Try adjusting your search or filters."
 * />
 * <EmptyState
 *   icon={<Icon icon={InboxIcon} size="lg" />}
 *   title="No messages"
 *   description="You're all caught up!"
 *   actions={<Button label="Compose" variant="primary" />}
 * />
 * ```
 */
export declare function EmptyState({ title, description, icon, actions, headingLevel, isCompact, xstyle, className, style, ref, ...props }: EmptyStateProps): import("react").JSX.Element;
export declare namespace EmptyState {
    var displayName: string;
}
//# sourceMappingURL=EmptyState.d.ts.map