import { type ComponentType, type ReactElement } from "react"; import { type StyleProp, type ViewStyle } from "../../style/index.js"; import { type ButtonProps } from "../../atoms/button/button.shared.js"; import { type EmptyStateSkin } from "./empty-state.styles.js"; export interface EmptyStateProps { /** * The glyph shown in the disc: a monochrome `` element (cloned with the * tone's tint and the disc's glyph size, so it follows `success`/default like the * disc wash does; a semantic color boolean on the element still wins) or an * emoji/character string. */ icon?: string | ReactElement; /** Short, neutral headline naming the empty result. */ title?: string; /** One reassuring line, ideally pointing at the next step. */ description?: string; /** When set, renders a primary action button below the description. */ actionLabel?: string; /** Called when the action button is pressed. */ onAction?: () => void; success?: boolean; bordered?: boolean; compact?: boolean; /** E2E hook forwarded to the root element. */ testID?: string; /** Outer layout composition only (width/flex within a parent), never a restyle hook. */ style?: StyleProp; } export type ButtonComponent = ComponentType; /** * Build an EmptyState from a platform skin. * * `Button` is the platform-correct action atom the EmptyState composes. Each * platform's thin `.tsx`/`.ios`/`.android` file passes the Button it already * resolves for that platform, so the action matches the molecule's platform on * every build path (notably the WEB docs 3-up preview, where a barrel import would * otherwise resolve the web atom). Defaults to the web-base Button when omitted, * which is also correct on a real device (Metro resolves the right extension there * regardless). */ export declare function createEmptyState(skin: EmptyStateSkin, Button?: ButtonComponent): (props: EmptyStateProps) => import("react").JSX.Element; //# sourceMappingURL=empty-state.shared.d.ts.map