1// Copyright 2023 The Pigweed Authors 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); you may not 4// use this file except in compliance with the License. You may obtain a copy of 5// the License at 6// 7// https://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12// License for the specific language governing permissions and limitations under 13// the License. 14 15export interface Field { 16 key: string; 17 value: string | boolean | number | object; 18} 19 20export interface TableColumn { 21 fieldName: string; 22 characterLength: number; 23 manualWidth: number | null; 24 isVisible: boolean; 25} 26 27export interface LogEntry { 28 severity?: Severity; 29 timestamp: Date; 30 fields: Field[]; 31 sourceData?: SourceData; 32} 33 34export enum Severity { 35 DEBUG = 'DEBUG', 36 INFO = 'INFO', 37 WARNING = 'WARNING', 38 ERROR = 'ERROR', 39 CRITICAL = 'CRITICAL', 40} 41 42export interface LogEntryEvent { 43 type: 'log-entry'; 44 data: LogEntry; 45} 46 47// Union type for all log source event types 48export type LogSourceEvent = LogEntryEvent /* | ... */; 49 50export interface SourceData { 51 id: string; 52 name: string; 53} 54