import * as class_variance_authority_types from 'class-variance-authority/types'; import * as React$1 from 'react'; import React__default, { ReactNode, MouseEvent, HTMLAttributes } from 'react'; import { VariantProps } from 'class-variance-authority'; import * as react_jsx_runtime from 'react/jsx-runtime'; import * as CheckboxPrimitive from '@radix-ui/react-checkbox'; import * as DialogPrimitive from '@radix-ui/react-dialog'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; import * as LabelPrimitive from '@radix-ui/react-label'; import * as PopoverPrimitive from '@radix-ui/react-popover'; import * as ProgressPrimitive from '@radix-ui/react-progress'; import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; import * as SelectPrimitive from '@radix-ui/react-select'; import * as SeparatorPrimitive from '@radix-ui/react-separator'; import * as SliderPrimitive from '@radix-ui/react-slider'; import * as SwitchPrimitives from '@radix-ui/react-switch'; import * as TabsPrimitive from '@radix-ui/react-tabs'; import * as TooltipPrimitive from '@radix-ui/react-tooltip'; import { LucideIcon } from 'lucide-react'; export { Activity, AlertCircle, AlertTriangle, Archive, ArrowLeft, ArrowRight, BarChart, Bot, Brain, Building2, Calendar, CheckCircle, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Circle, Clock, Coffee, Copy, Cpu, Database, Download, Edit, Eye, EyeOff, File, FileCode, FileText, Filter, Folder, FolderOpen, Gauge, GitBranch, Globe, Grid3x3, HardDrive, HelpCircle, Home, Info, Key, Keyboard, Layers, LayoutDashboard, Lightbulb, LineChart, Loader2, Lock, LogOut, LucideIcon, Menu, MessageSquare, Monitor, Moon, MoreHorizontal, MoreVertical, Package, Palette, Paperclip, Pause, PieChart, Play, PlayCircle, Plus, RefreshCw, Save, Search, Send, Server, Settings, Shield, SkipForward, Smartphone, Sparkles, Square, StopCircle, Sun, Tag, Target, Terminal, Trash2, TrendingDown, TrendingUp, Trophy, Undo, Unlock, Upload, User, UserCheck, UserPlus, Users, Volume2, Wifi, WifiOff, X, XCircle, Zap } from 'lucide-react'; import { ManagerOptions, SocketOptions, Socket } from 'socket.io-client'; import { ClassValue } from 'clsx'; export { BatchActionsBar, BatchActionsBarProps, CellProps, ColumnConfig, ColumnConfigCompat, ColumnDef, ColumnOrderConfig, ColumnSizeConfig, ColumnVisibility, ColumnVisibilityConfig, ColumnVisibilityState, ColumnWidth, DataTable, DataTablePage, DataTablePageProps, DataTableProps, DragState, ExternalPaginationState, FilterOption, HeaderCellProps, MultiSelectFilter, MultiSelectFilterProps, MultiSelectOption, Pagination, PaginationControls, PaginationControlsProps, ResizableColumnResult, TableFilterOption, TableFilters, TableFiltersProps, useColumnDragDrop, useColumnOrder, useColumnVisibility, usePagination, useResizableColumns } from './data-table.mjs'; declare const Alert: React$1.ForwardRefExoticComponent & VariantProps<(props?: ({ variant?: "default" | "destructive" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes>; declare const AlertTitle: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const AlertDescription: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const badgeVariants: (props?: ({ variant?: "default" | "destructive" | "secondary" | "outline" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; interface BadgeProps extends React$1.HTMLAttributes, VariantProps { } declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element; declare const buttonVariants: (props?: ({ variant?: "default" | "destructive" | "link" | "secondary" | "outline" | "ghost" | null | undefined; size?: "default" | "sm" | "lg" | "icon" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; interface ButtonProps extends React$1.ButtonHTMLAttributes, VariantProps { asChild?: boolean; } declare const Button: React$1.ForwardRefExoticComponent>; /** * Simple Card Component */ interface CardProps extends React.HTMLAttributes { children: React.ReactNode; } declare function Card({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element; declare function CardHeader({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element; declare function CardContent({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element; declare function CardTitle({ children, className, ...props }: CardProps): react_jsx_runtime.JSX.Element; declare const Checkbox: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Dialog: React$1.FC; declare const DialogTrigger: React$1.ForwardRefExoticComponent>; declare const DialogPortal: React$1.FC; declare const DialogClose: React$1.ForwardRefExoticComponent>; declare const DialogOverlay: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; interface DialogContentProps extends React$1.ComponentPropsWithoutRef { hideCloseButton?: boolean; } declare const DialogContent: React$1.ForwardRefExoticComponent>; declare const DialogHeader: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; declare const DialogFooter: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; declare const DialogTitle: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DialogDescription: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenu: React$1.FC; declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent>; declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent>; declare const DropdownMenuPortal: React$1.FC; declare const DropdownMenuSub: React$1.FC; declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent>; declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuItem: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuShortcut: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; interface InputProps extends React$1.InputHTMLAttributes { } declare const Input: React$1.ForwardRefExoticComponent>; declare const Label: React$1.ForwardRefExoticComponent, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes>; declare const Popover: React$1.FC; declare const PopoverTrigger: React$1.ForwardRefExoticComponent>; declare const PopoverContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Progress: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const ScrollArea: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const ScrollBar: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Select: React$1.FC; declare const SelectGroup: React$1.ForwardRefExoticComponent>; declare const SelectValue: React$1.ForwardRefExoticComponent>; declare const SelectTrigger: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectLabel: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectSeparator: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Separator: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Slider: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Switch: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Table: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableHeader: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableBody: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableFooter: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableRow: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableHead: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableCell: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableCaption: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const Tabs: React$1.ForwardRefExoticComponent>; declare const TabsList: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const TabsTrigger: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const TabsContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; interface TextareaProps extends React$1.TextareaHTMLAttributes { } declare const Textarea: React$1.ForwardRefExoticComponent>; declare const TooltipProvider: React$1.FC; declare const Tooltip: React$1.FC; declare const TooltipTrigger: React$1.ForwardRefExoticComponent>; declare const TooltipContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; interface LoginPageConfig { apiEndpoint?: string; logoSrc?: string; fallbackLogoSrc?: string; appTitle?: string; subtitle?: string; showLanguageSelector?: boolean; showPoweredBy?: boolean; poweredByLogo?: string; poweredByText?: string; onLoginSuccess?: () => void; onLoginError?: (error: string) => void; customStyles?: { container?: string; card?: string; logo?: string; title?: string; subtitle?: string; errorMessage?: string; input?: string; button?: string; }; } interface LoginPageProps extends LoginPageConfig { navigate: (path: string) => void; } declare function LoginPage({ apiEndpoint, logoSrc, fallbackLogoSrc, appTitle, subtitle, showLanguageSelector, showPoweredBy, poweredByLogo, poweredByText, onLoginSuccess, onLoginError, customStyles, navigate }: LoginPageProps): react_jsx_runtime.JSX.Element; interface ProtectedRouteProps { children: React__default.ReactNode; loginPath?: string; authEndpoint?: string; loadingComponent?: React__default.ReactNode; } /** * Protected route component that checks authentication before rendering children * Redirects to login page if not authenticated */ declare function ProtectedRoute({ children, loginPath, authEndpoint, loadingComponent }: ProtectedRouteProps): string | number | true | react_jsx_runtime.JSX.Element | Iterable; interface LogsPageStats { totalSize: number; totalSizeFormatted?: string; fileCount: number; } interface LogsPageProps { apiUrl?: string; eyebrow?: string; title?: string; description?: string; compactAfterDays?: number; autoRefreshMs?: number; className?: string; viewerClassName?: string; } /** * Opinionated logs page for active apps. * Uses the shared logs router contract and wraps LogViewer with support stats * and maintenance actions rather than leaving each app to rebuild the shell. */ declare function LogsPage({ apiUrl, eyebrow, title, description, compactAfterDays, autoRefreshMs, className, viewerClassName, }: LogsPageProps): react_jsx_runtime.JSX.Element; interface SettingDefinition$1 { key: string; label: string; description?: string; type: 'text' | 'password' | 'number' | 'boolean' | 'select' | 'custom'; options?: Array<{ value: string; label: string; }>; defaultValue?: any; validation?: (value: any) => string | null; requiresRestart?: boolean; customComponent?: ReactNode; placeholder?: string; min?: number; max?: number; } interface SettingsCategory$1 { id: string; label: string; description?: string; icon?: ReactNode; settings: SettingDefinition$1[]; } interface SettingsPageProps { categories: SettingsCategory$1[]; values: Record; loading?: boolean; saving?: boolean; onSave: (values: Record) => Promise; onReset?: () => void; onRestart?: () => void; showRestartBanner?: boolean; className?: string; title?: string; } declare function SettingsPage({ categories, values: initialValues, loading, saving, onSave, onReset, onRestart, showRestartBanner, className, title }: SettingsPageProps): react_jsx_runtime.JSX.Element; interface ConnectionStatusProps { url?: string; className?: string; checkInterval?: number; } /** * Connection status indicator with a calm, pulsing LED beacon * Shows WebSocket connection status between frontend and backend */ declare function ConnectionStatus$1({ url, className, checkInterval }: ConnectionStatusProps): react_jsx_runtime.JSX.Element; interface ConnectionLostOverlayProps { isConnected: boolean; appName?: string; onRetry?: () => void; } declare function ConnectionLostOverlay({ isConnected, appName, onRetry }: ConnectionLostOverlayProps): react_jsx_runtime.JSX.Element | null; interface ConnectionOverlayProps { isConnected: boolean; onRetry: () => void; } declare function ConnectionOverlay({ isConnected, onRetry }: ConnectionOverlayProps): JSX.Element | null; interface ConnectionStatusBannerProps { connected: boolean; connecting: boolean; transport: 'websocket' | 'polling' | null; apiReady?: boolean; } /** * Enhanced connection status banner that shows different states: * - Green: WebSocket connected (optimal) * - Blue: Polling connected (HTTP/2 fallback, fully functional) * - Yellow: Connecting/reconnecting * - Hidden: Disconnected (handled by ConnectionLostOverlay) */ declare function ConnectionStatusBanner({ connected, connecting, transport, apiReady }: ConnectionStatusBannerProps): react_jsx_runtime.JSX.Element | null; interface RestartBannerProps { show: boolean; onRestart?: () => void; onDismiss?: () => void; className?: string; } declare function RestartBanner({ show, onRestart, onDismiss, className }: RestartBannerProps): react_jsx_runtime.JSX.Element | null; interface TestModeIndicatorProps { config?: any; className?: string; } declare function TestModeIndicator({ config }?: TestModeIndicatorProps): react_jsx_runtime.JSX.Element | null; interface ConnectionIndicatorProps { connected: boolean; connecting: boolean; error: Error | null; retryCount: number; onRetry?: () => void; className?: string; } declare function ConnectionIndicator({ connected, connecting, error, retryCount, onRetry, className }: ConnectionIndicatorProps): react_jsx_runtime.JSX.Element; interface DeviceIconProps { category?: string; className?: string; size?: number; } declare function DeviceIcon({ category, className, size }: DeviceIconProps): react_jsx_runtime.JSX.Element; interface DogEarBadgeProps { className?: string; size?: 'sm' | 'md' | 'lg'; icon?: React.ReactNode; color?: 'purple' | 'blue' | 'green' | 'red' | 'amber'; } declare function DogEarBadge({ className, size, icon, color }: DogEarBadgeProps): react_jsx_runtime.JSX.Element; interface EmptyStateProps { title: string; description?: string; icon?: React.ReactNode; action?: { label: string; onClick: () => void; icon?: React.ReactNode; }; className?: string; } declare function EmptyState({ title, description, icon, action, className }: EmptyStateProps): react_jsx_runtime.JSX.Element; interface AppCrashFallbackProps { title?: string; description?: string; error?: Error | string | null; reloadLabel?: string; onReload?: () => void; className?: string; } declare function AppCrashFallback({ title, description, error, reloadLabel, onReload, className, }: AppCrashFallbackProps): react_jsx_runtime.JSX.Element; interface NoTemplatesFoundProps { onCreate?: () => void; } declare function NoTemplatesFound({ onCreate }: NoTemplatesFoundProps): react_jsx_runtime.JSX.Element; interface NoSearchResultsProps { searchTerm?: string; onClearFilters?: () => void; } declare function NoSearchResults({ searchTerm, onClearFilters }: NoSearchResultsProps): react_jsx_runtime.JSX.Element; interface NoSimulatorsRunningProps { onNavigateToTemplates?: () => void; } declare function NoSimulatorsRunning({ onNavigateToTemplates }: NoSimulatorsRunningProps): react_jsx_runtime.JSX.Element; declare const EmptyStates: { NoTemplatesFound: typeof NoTemplatesFound; NoTemplatesMatchSearch: typeof NoSearchResults; NoSimulatorsRunning: typeof NoSimulatorsRunning; }; interface LoadingStateProps { message?: string; className?: string; size?: 'sm' | 'md' | 'lg'; } declare function LoadingState({ message, className, size }: LoadingStateProps): react_jsx_runtime.JSX.Element; declare function CardSkeleton({ className }: { className?: string; }): react_jsx_runtime.JSX.Element; declare function TableSkeleton({ rows }: { rows?: number; }): react_jsx_runtime.JSX.Element; interface HelpTooltipProps { content: string | React.ReactNode; title?: string; size?: 'sm' | 'md' | 'lg'; align?: 'start' | 'center' | 'end'; side?: 'top' | 'bottom' | 'left' | 'right'; className?: string; iconClassName?: string; } declare function HelpTooltip({ content, title, size, align, side, className, iconClassName }: HelpTooltipProps): react_jsx_runtime.JSX.Element; interface NetworkInterfaceSelectProps { value: string; onChange: (value: string) => void; apiUrl?: string; endpoint?: string; disabled?: boolean; className?: string; showRefresh?: boolean; showNetworkInfo?: boolean; } declare function NetworkInterfaceSelect({ value, onChange, apiUrl, endpoint, disabled, className, showRefresh, showNetworkInfo }: NetworkInterfaceSelectProps): react_jsx_runtime.JSX.Element; interface MarkdownViewerProps { content: string; className?: string; showCopyButton?: boolean; } declare function MarkdownViewer({ content, className, showCopyButton }: MarkdownViewerProps): react_jsx_runtime.JSX.Element; /** * MarkdownViewer component wrapped in a Card */ declare function MarkdownCard({ content, className, title, ...props }: MarkdownViewerProps & { title?: string; }): react_jsx_runtime.JSX.Element; /** * MarkdownViewer component wrapped in a ScrollArea */ declare function MarkdownScrollArea({ content, className, height, ...props }: MarkdownViewerProps & { height?: string; }): react_jsx_runtime.JSX.Element; interface TruncatedTextProps { children: ReactNode; className?: string; maxWidth?: string | number; tooltipSide?: 'top' | 'right' | 'bottom' | 'left'; } declare function TruncatedText({ children, className, maxWidth, tooltipSide, }: TruncatedTextProps): react_jsx_runtime.JSX.Element; declare const TAG_COLORS: { hex: string; name: string; }[]; interface ColorPaletteProps { value: string; onChange: (color: string) => void; columns?: number; className?: string; } declare function ColorPalette({ value, onChange, columns, className }: ColorPaletteProps): react_jsx_runtime.JSX.Element; declare function getRandomTagColor(): string; declare function getNextTagColor(currentColor: string): string; declare function getNextAvailableColor(usedColors: string[]): string; interface PathTypeaheadProps { value: string; onChange: (value: string) => void; onValidPath?: (expandedPath: string) => void; mode?: 'directory' | 'file' | 'both'; projectId?: string; placeholder?: string; className?: string; error?: string; disabled?: boolean; /** URL for the filesystem browse endpoint. Defaults to /api/filesystem/browse */ browseUrl?: string; } declare function PathTypeahead({ value, onChange, onValidPath, mode, projectId, placeholder, className, error, disabled, browseUrl, }: PathTypeaheadProps): react_jsx_runtime.JSX.Element; type ConfirmDialogVariant = 'default' | 'destructive' | 'warning' | 'success'; interface ConfirmDialogProps { open: boolean; onOpenChange: (open: boolean) => void; title: string; description: string; confirmLabel?: string; cancelLabel?: string; variant?: ConfirmDialogVariant; icon?: LucideIcon; onConfirm: () => void; onCancel?: () => void; loading?: boolean; } declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, variant, icon, onConfirm, onCancel, loading, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element; /** * Hook to manage confirm dialog state */ declare function useConfirmDialog(): { confirm: (options: { title: string; description: string; confirmLabel?: string; cancelLabel?: string; variant?: ConfirmDialogVariant; }) => Promise; dialogProps: { onOpenChange: (open: boolean) => void; onCancel: () => void; open: boolean; title: string; description: string; confirmLabel?: string; cancelLabel?: string; variant?: ConfirmDialogVariant; onConfirm: () => void; }; ConfirmDialog: typeof ConfirmDialog; }; interface ResizableDialogRenderProps { isFullscreen: boolean; } interface ResizableDialogProps { open: boolean; onOpenChange: (open: boolean) => void; title?: React.ReactNode; titleExtra?: React.ReactNode; children: React.ReactNode | ((props: ResizableDialogRenderProps) => React.ReactNode); footer?: React.ReactNode; defaultWidth?: number; defaultHeight?: number; minWidth?: number; minHeight?: number; className?: string; onFullscreenChange?: (isFullscreen: boolean) => void; } declare function ResizableDialog({ open, onOpenChange, title, titleExtra, children, footer, defaultWidth, defaultHeight, minWidth, minHeight, className, onFullscreenChange, }: ResizableDialogProps): react_jsx_runtime.JSX.Element; interface ContextMenuPosition { x: number; y: number; } interface ContextMenuProps { position: ContextMenuPosition; onClose: () => void; children: ReactNode; className?: string; } /** * Base context menu container with positioning, close-on-outside-click, * and close-on-scroll behavior. Automatically adjusts position to stay within viewport. */ declare function ContextMenu({ position, onClose, children, className }: ContextMenuProps): react_jsx_runtime.JSX.Element; interface ContextMenuItemProps { onClick?: (e: MouseEvent) => void; onMouseEnter?: () => void; icon?: ReactNode; children: ReactNode; /** Use 'default' for standard items, or specify a color variant */ variant?: 'default' | 'success' | 'warning' | 'destructive' | 'purple'; disabled?: boolean; className?: string; } /** * A single menu item for the context menu. */ declare function ContextMenuItem({ onClick, onMouseEnter, icon, children, variant, disabled, className, }: ContextMenuItemProps): react_jsx_runtime.JSX.Element; /** * Horizontal separator for context menu sections. */ declare function ContextMenuSeparator(): react_jsx_runtime.JSX.Element; interface ContextMenuSubmenuProps { label: string; icon?: ReactNode; children: ReactNode; /** Callback when this submenu opens (useful for closing other submenus) */ onOpen?: () => void; /** External control for open state */ isOpen?: boolean; /** External control for setting open state */ onOpenChange?: (open: boolean) => void; className?: string; } /** * A hoverable submenu that opens to the right of the trigger. * Can be controlled externally or manage its own state. */ declare function ContextMenuSubmenu({ label, icon, children, onOpen, isOpen: externalIsOpen, onOpenChange, className, }: ContextMenuSubmenuProps): react_jsx_runtime.JSX.Element; interface CodeViewerProps { code: string; language?: string; filename?: string; lineStart?: number; highlightLines?: number[]; className?: string; showLineNumbers?: boolean; showFilename?: boolean; autoScrollToHighlight?: boolean; } /** * Code viewer with syntax highlighting, line numbers, and highlighted line support. * * @example * ```tsx * * ``` */ declare function CodeViewer({ code, language, filename, lineStart, highlightLines, className, showLineNumbers, showFilename, autoScrollToHighlight, }: CodeViewerProps): react_jsx_runtime.JSX.Element; /** * Compact version for inline code snippets without line numbers. */ declare function CodeSnippet({ code, language, filename, className, }: { code: string; language?: string; filename?: string; className?: string; }): react_jsx_runtime.JSX.Element; interface AppCommandPaletteItem { id: string; title: string; action: () => Promise | void; group?: string; description?: string; icon?: ReactNode; keywords?: string[]; badge?: ReactNode; disabled?: boolean; } interface AppCommandPaletteProps { open: boolean; onOpenChange: (open: boolean) => void; items: AppCommandPaletteItem[]; pendingId?: string | null; onRunAction?: (item: AppCommandPaletteItem) => Promise | void; title?: string; description?: string; placeholder?: string; emptyLabel?: string; closeLabel?: string; dialogTestId?: string; maxWidthClassName?: string; groupOrder?: string[]; footerHint?: ReactNode; } declare function AppCommandPalette({ open, onOpenChange, items, pendingId, onRunAction, title, description, placeholder, emptyLabel, closeLabel, dialogTestId, maxWidthClassName, groupOrder, footerHint, }: AppCommandPaletteProps): react_jsx_runtime.JSX.Element; /** * Date formatting utilities for displaying relative time */ /** * Formats a date/timestamp as relative time (e.g., "2 minutes ago", "3 hours ago") * @param date - Date object, timestamp string, or timestamp number * @returns Formatted relative time string */ declare function formatRelativeTime(date: Date | string | number): string; /** * Formats a date to a standard display format * @param date - Date object, timestamp string, or timestamp number * @param options - Intl.DateTimeFormatOptions for formatting * @returns Formatted date string */ declare function formatDateTime(date: Date | string | number, options?: Intl.DateTimeFormatOptions): string; /** * Formats duration in seconds to human-readable format * @param seconds - Duration in seconds * @returns Formatted duration string (e.g., "2h 15m", "5d 3h") */ declare function formatDuration(seconds: number): string; /** * Gets a short relative time label (e.g., "2m", "3h", "5d") * @param date - Date object, timestamp string, or timestamp number * @returns Short relative time string */ declare function formatShortRelativeTime(date: Date | string | number): string; /** * Number and byte formatting utilities */ /** * Formats bytes to human-readable size * @param bytes - Number of bytes * @returns Formatted string (e.g., "1.50 KB", "2.30 MB") */ declare function formatBytes(bytes: number): string; /** * Formats large numbers with K/M suffixes * @param num - Number to format * @returns Formatted string (e.g., "1.5K", "2.3M") */ declare function formatNumber(num: number): string; /** * Formats duration in milliseconds to human-readable format * @param ms - Duration in milliseconds * @returns Formatted duration string (e.g., "2h 15m", "45s") */ declare function formatDurationMs(ms: number): string; declare function getTagColor(tag: string): { bg: string; text: string; border: string; } | undefined; declare function getTagClassName(tag: string): string; /** * Formats a date as relative time (e.g., "5m ago", "2d ago") * @param date - Date to format * @param options - Formatting options * @returns Formatted relative time string */ declare function timeAgo(date: Date | string, options?: { justNow?: boolean; }): string; /** * Alias for timeAgo with "just now" for recent times * @param date - Date to format * @returns Formatted relative time string (e.g., "just now", "5m ago") */ declare function formatTimeAgo(date: Date | string): string; /** * API Readiness Utility * Handles checking if the API server is ready before making requests */ interface ApiReadinessResult { ready: boolean; error?: string; retryAfter?: number; } interface ApiReadinessOptions { healthEndpoint?: string; timeout?: number; maxAttempts?: number; initialDelay?: number; maxDelay?: number; } /** * Check if the API server is ready to accept requests */ declare function checkApiReadiness(apiUrl: string, timeout?: number): Promise; /** * Wait for API to be ready with exponential backoff */ declare function waitForApiReady(apiUrl: string, options?: ApiReadinessOptions): Promise; /** * Enhanced fetch with API readiness check */ declare function apiRequest(apiUrl: string, endpoint: string, options?: RequestInit): Promise; /** * React Hook for API Readiness */ declare function useApiReadiness(apiUrl: string, options?: ApiReadinessOptions): { ready: boolean; error: string | null; checking: boolean; }; declare const browserLogLevels: readonly ["debug", "info", "warn", "error"]; type BrowserLogLevel = (typeof browserLogLevels)[number]; interface BrowserLogEntry { level: BrowserLogLevel; message: string; timestamp: string; scope?: string; data?: unknown; } interface BrowserLoggerOptions { scope?: string; level?: BrowserLogLevel; consoleOutput?: boolean; bufferSize?: number; sink?: (entry: BrowserLogEntry) => void; } interface BrowserLogger { debug: (message: string, data?: unknown) => void; info: (message: string, data?: unknown) => void; warn: (message: string, data?: unknown) => void; error: (message: string, data?: unknown) => void; child: (scope: string) => BrowserLogger; getRecentLogs: () => BrowserLogEntry[]; clear: () => void; setLevel: (level: BrowserLogLevel) => void; getLevel: () => BrowserLogLevel; } declare function createBrowserLogger(options?: BrowserLoggerOptions): BrowserLogger; declare function createScopedBrowserLogger(scope: string, options?: Omit): BrowserLogger; declare const browserLogger: BrowserLogger; interface UseFormStateOptions { initialValues: T; defaultValues?: T; onSave: (values: T) => Promise; timeout?: number; validateChanges?: (values: T) => boolean; } interface FormState { values: T; isDirty: boolean; isSaving: boolean; error: string | null; setValues: (values: T | ((prev: T) => T)) => void; setFieldValue: (field: K, value: T[K]) => void; save: () => Promise; reset: () => void; resetToDefaults: () => void; canSave: boolean; } /** * Custom hook for managing form state with dirty checking and save lifecycle */ declare function useFormState>({ initialValues, defaultValues, onSave, timeout, validateChanges }: UseFormStateOptions): FormState; interface NavItem { name: string; href: string; icon?: React__default.ReactNode; } interface AppLayoutProps { appName: string; appVersion?: string; navigation: NavItem[]; children: React__default.ReactNode; headerActions?: React__default.ReactNode; logoSrc?: string; /** Custom CSS class for logo (default: "h-8 w-auto") */ logoClassName?: string; /** Offset for logo positioning, e.g., { top: -4, left: 0 } */ logoOffset?: { top?: number; left?: number; }; /** Custom header height class (default: "h-16") */ headerHeight?: string; showLogout?: boolean; onLogout?: () => void; authenticated?: boolean; connectionStatusUrl?: string; className?: string; primaryColor?: string; /** 'inline' is the framework default; 'stacked' remains for legacy layouts */ navLayout?: 'stacked' | 'inline'; /** 'pill' is the framework default; 'bar' remains for legacy layouts */ navActiveStyle?: 'bar' | 'pill'; /** Custom class for the
element (replaces default 'bg-black') */ headerClassName?: string; /** Custom class for the