import * as react from 'react'; import { ReactNode, CSSProperties } from 'react'; /** Loading timing constants, matching the host (LOADING_UX_SPEC §3, the 2026-06-22 * design bundle). Exported so authors who hand-roll still match the platform. */ declare const LOADING_TIMINGS: { /** Below this, NO spinner appears — a fast wait never flashes one (§6.2 floor). */ readonly spinThresholdMs: 150; /** The reveal cross-fade duration the host uses. */ readonly fadeMs: 150; /** One slow shimmer sweep across a placeholder. */ readonly shimmerMs: 1900; }; /** The in-app skeleton archetypes (the same shapes as the host §4.1 catalog). */ type SkeletonArchetype = 'panel.list' | 'panel.tree' | 'panel.editor' | 'panel.conversation' | 'generic'; /** A single placeholder bar — compose these into a custom skeleton shape. */ declare function SkeletonRow({ width, height, style, }: { width?: number | string; height?: number | string; style?: CSSProperties; }): react.JSX.Element; /** A shaped, in-app skeleton matching the host archetypes — for an app's own lazy * region (e.g. `}>`). * Decorative (`aria-hidden`); pair it with `aria-busy` on the region it stands in. */ declare function Skeleton({ archetype, style }: { archetype?: SkeletonArchetype; style?: CSSProperties; }): react.JSX.Element; /** An indeterminate spinner for waits where a shaped skeleton doesn't fit (a pending * button, a small inline fetch). Wired to the host's ~150 ms-before-spin rule: it * renders nothing until the threshold, so a fast wait shows no flash. Reduced motion * stills the rotation (the ring stays as a static indicator). In-app a11y only. */ declare function Spinner({ size, thresholdMs, label, }: { size?: number; thresholdMs?: number; label?: string; }): react.JSX.Element | null; /** Wrap an in-app region whose content is still loading: shows a centered spinner * (past the 150 ms floor) with `aria-busy`, then reveals `children`. For a shaped * wait, pass a `` as `fallback` instead. App a11y only — not host chrome. */ declare function LoadingRegion({ loading, fallback, label, children, }: { loading: boolean; fallback?: ReactNode; label?: string; children?: ReactNode; }): react.JSX.Element; export { LOADING_TIMINGS, LoadingRegion, Skeleton, type SkeletonArchetype, SkeletonRow, Spinner };