import { default as React } from 'react'; export type LogSeverity = "debug" | "info" | "warn" | "error" | "critical"; export interface LogEntry { /** Unique ID */ id: string | number; /** Wall-clock timestamp (ISO string or Date) for ordering/export. */ timestamp: string | Date; /** * Simulation-elapsed time in seconds (T+ format) when the event occurred. * Optional. When provided AND `timestampFormat="sim-elapsed"`, this is what * the timestamp column displays. Falls through to `timestamp` otherwise. */ simTime?: number; /** Severity level */ severity: LogSeverity; /** Log message */ message: string; /** Source component/system */ source?: string; /** Additional metadata */ metadata?: Record; } export interface LogViewerProps { /** Array of log entries */ entries: LogEntry[]; /** Maximum entries to keep in memory (default: 5000). Older entries are pruned. */ maxEntries?: number; /** Height of the viewer (default: 400) */ height?: number | string; /** Title */ title?: string; /** Show timestamps (default: true) */ showTimestamp?: boolean; /** Show source column (default: true) */ showSource?: boolean; /** Show severity filter toolbar (default: true) */ showFilters?: boolean; /** Show search bar (default: true) */ showSearch?: boolean; /** Initial severity filters (all enabled by default) */ defaultSeverities?: LogSeverity[]; /** * Timestamp format. `'sim-elapsed'` displays `entry.simTime` as `T+HHH:MM:SS.s` * (falls back to wall-clock formatting if simTime is absent on an entry). * Default: 'time'. */ timestampFormat?: "time" | "datetime" | "relative" | "sim-elapsed"; /** Called when an entry is clicked */ onEntryClick?: (entry: LogEntry) => void; /** CSS class */ className?: string; /** Show outer container border (default: true). Set false when embedded inside a Container/card. */ bordered?: boolean; /** Custom style overrides for the outer container */ style?: React.CSSProperties; /** Estimated row height in px for virtualization (default: 28). Enables smooth scroll through large logs. */ estimatedRowHeight?: number; /** Number of rows to render above/below viewport for virtualization (default: 12). */ overscanCount?: number; /** * Enable pagination: show entries in pages with Previous/Next. * Page 1 = newest entries. Use with large maxEntries so users can navigate to older pages. * When set, scrolling is replaced by page navigation (better for very large logs). */ pagination?: boolean | { pageSize?: number; }; } export declare const LogViewer: React.NamedExoticComponent; export default LogViewer;