export type WebSocketContextValue = { connected: boolean; send?: (msg: unknown) => void; latestStats: { activeUsers: number; alerts: number } | null; }; export type InfoBarData = { "system-clock-utc": string; "system-clock-local": string; "memory-cpu-status": string; "thread-count": string; }; export type StatusIndicator = "neutral-quaternary" | "dark" | "info" | "success" | "warning" | "danger"; export type Region = { name: string; brushColour: string; }; export type SystemHealthStatus = { id: string; tags: string[]; groupID: string; }; export type StatusGroups = { channelA: SystemHealthStatus[]; channelB: SystemHealthStatus[]; channelC: SystemHealthStatus[]; default: SystemHealthStatus[]; }; export type BearerTypeFields = { format: string; enabled: boolean; backOfficeURL: string; username: string; password: string; connectTimeoutSeconds: number; readTimeoutSeconds: number; overviewQuality: string; cropSizeFactor: string; }; export type OptionalConstants = { FFID?: string; SCID?: string; timestampSource?: string; GPSFormat?: string; }; export type OptionalLaneIDs = { laneId?: string; LID1?: string; LID2?: string; LID3?: string; }; export type InitialValuesFormErrors = { backOfficeURL?: string; username?: string; password?: string; connectTimeoutSeconds?: string; readTimeoutSeconds?: string; }; export type FormTypes = BearerTypeFields & OptionalConstants & OptionalLaneIDs; type FieldProperty = { datatype: string; value: string; }; export type OutputDataResponse = { id: string; configHash: string; } & Record; export type PaintedCell = { colour: string; }; export type DispatcherConfig = { format: string; enabled: boolean; }; export type OptionalBOF2Constants = { format?: string; FFID?: string; SCID?: string; timestampSource?: string; GPSFormat?: string; }; export type OptionalUTMCConstants = { format?: string; SCID?: string; timestampSource?: string; GPSFormat?: string; }; export type OptionalBOF2LaneIDs = { laneId?: string; LID1?: string; LID2?: string; LID3?: string; }; export type CameraFeedState = { cameraFeedID: "A" | "B" | "C"; paintedCells: { A: Map; B: Map; C: Map; }; regionsByCamera: { A: Region[]; B: Region[]; C: Region[]; }; selectedRegionIndex: number; modeByCamera: { A: string; B: string; C: string; }; tabIndex?: number; }; export type CameraFeedAction = | { type: "SET_CAMERA_FEED"; payload: "A" | "B" | "C"; } | { type: "CHANGE_MODE"; payload: { cameraFeedID: "A" | "B" | "C"; mode: string }; } | { type: "SET_SELECTED_REGION_INDEX"; payload: number } | { type: "SET_SELECTED_REGION_COLOUR"; payload: { cameraFeedID: "A" | "B" | "C"; regionName: string; newColour: string }; } | { type: "ADD_NEW_REGION"; payload: { cameraFeedID: "A" | "B" | "C"; regionName: string; brushColour: string }; } | { type: "REMOVE_REGION"; payload: { cameraFeedID: "A" | "B" | "C"; regionName: string }; } | { type: "RESET_PAINTED_CELLS"; payload: { cameraFeedID: "A" | "B" | "C"; paintedCells: Map }; }; export type DecodeReading = { id: number; vrm: string; laneID: number; seenCount: number; firstSeenTime?: number; lastSeenTime?: number; duplicate?: true; firstSeenTimeHumane: string; lastSeenTimeHumane: string; };