import type { SessionEventsConnectionState } from "../../hooks/use-session-events.js"; import { type ReactNode } from "react"; /** One quiet presentation across bootstrap, access, route and history gates. * Named operation panels retain their existing treatment. Gates still own * when content is authorized; this component never retains data. */ export declare function LoadingPanel({ label }: { label?: string | undefined; }): import("react").JSX.Element; export declare function ProblemPanel(props: { title: string; description: ReactNode; action?: ReactNode | undefined; }): import("react").JSX.Element; /** * Connection health, shown only when it needs a word (doctrine D2). Healthy * states (live / idle / ended) render nothing — the session status badge is the * single persistent pill, so there is no "live" + "Idle" double-green. The pill * surfaces only while the stream is degraded, in sentence case. Routine HTTP/1 * stream cycling never mounts the reconnect pill, so its hidden content cannot * shift the surrounding header controls. */ export declare function ConnectionPill({ state }: { state: SessionEventsConnectionState; }): import("react").JSX.Element | null; export declare function InspectorSection({ title, children }: { title: string; children: ReactNode; }): import("react").JSX.Element; export declare function InfoRow({ label, value }: { label: string; value: ReactNode; }): import("react").JSX.Element; export declare function CopyableMono({ value }: { value: string; }): import("react").JSX.Element; /** Standard page header: icon, title, blurb, and trailing actions. */ export declare function PageHeader(props: { icon: ReactNode; title: string; description?: string | undefined; actions?: ReactNode | undefined; className?: string | undefined; }): import("react").JSX.Element; export declare function EmptyState({ children }: { children: ReactNode; }): import("react").JSX.Element; /** * Honest failed-load state for list surfaces. Renders the error with a retry * affordance instead of letting routes fall through to "No X yet…" copy when * the request failed. Says what to do in product words; the raw status and * request reference stay behind Technical details. A permission refusal is * not a failure: it reads calmly, names who can help, and offers no retry. */ export declare function LoadErrorState({ title, error, onRetry, }: { title: string; error?: Error | null | undefined; onRetry: () => void; }): import("react").JSX.Element;