import type { CameraID } from "../app/config/cameraConfig"; 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 CameraZoomData = { magnificationLevel: 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 CustomField = { label: string; value: string; }; export type CustomFields = { customFields?: CustomField[]; }; export type InitialValuesFormErrors = { backOfficeURL?: string; username?: string; password?: string; connectTimeoutSeconds?: string; readTimeoutSeconds?: string; }; export type OSDConfigFields = { includeVRM: boolean; includeMotion: boolean; includeTimeStamp: boolean; includeCameraName: boolean; overlayPosition: "Top" | "Bottom" | "Left" | "Right"; OSDTimestampFormat: "UTC" | "LOCAL"; }; export type PayloadConfigFields = { includeMac: boolean; includeSaFID: boolean; includeCameraName: boolean; includeCharHeight: boolean; includeConfidence: boolean; includeCorrectSpacing: boolean; includeDecodeID: boolean; includeDirection: boolean; includeFrameHeight: boolean; includeFrameID: boolean; includeFrameTimeRef: boolean; includeFrameWidth: boolean; includeHorizSlew: boolean; includeMotion: boolean; inclduePlate: boolean; includeNightModeAction: boolean; includeOverview: boolean; includePlateSecondary: boolean; includePlateTrack: boolean; includePlateTrackSecondary: boolean; includePreferredCountry: boolean; includeRawReads: boolean; includeRawREADSSecondary: boolean; includeRef: boolean; includeSeenCount: boolean; includeRepeatedPlate: boolean; includeSerialCount: boolean; includeTimeStamp: boolean; includeTraceCount: boolean; includeTrack: boolean; includeTrackSecondary: boolean; includeVertSlew: boolean; includeVRM: boolean; includeVRMSecondary: boolean; includeHotListMatches: boolean; }; export type FormTypes = BearerTypeFields & OptionalConstants & OptionalLaneIDs & CustomFields & OSDConfigFields & PayloadConfigFields; type FieldProperty = { datatype: string; value: string; }; export type OutputDataResponse = { id: string; configHash: string; } & Record; export type PaintedCell = { colour: string; region: Region; }; 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: CameraID; paintedCells: Record>; regionsByCamera: Record; selectedRegionIndex: number; modeByCamera: Record; tabIndex?: number; zoomLevel: Record; }; export type CameraFeedAction = | { type: "SET_CAMERA_FEED"; payload: CameraID; } | { type: "CHANGE_MODE"; payload: { cameraFeedID: CameraID; mode: string }; } | { type: "SET_SELECTED_REGION_INDEX"; payload: number } | { type: "SET_SELECTED_REGION_COLOUR"; payload: { cameraFeedID: CameraID; regionName: string; newColour: string }; } | { type: "ADD_NEW_REGION"; payload: { cameraFeedID: CameraID; regionName: string; brushColour: string }; } | { type: "REMOVE_REGION"; payload: { cameraFeedID: CameraID; regionName: string }; } | { type: "RESET_PAINTED_CELLS"; payload: { cameraFeedID: CameraID; paintedCells: Map }; } | { type: "SET_CAMERA_FEED_DATA"; cameraState: CameraFeedState; } | { type: "RESET_CAMERA_FEED"; } | { type: "SET_ZOOM_LEVEL"; payload: { cameraFeedID: CameraID; zoomLevel: number }; }; export type DecodeReading = { id: number; vrm: string; laneID: number; seenCount: number; firstSeenTime?: number; lastSeenTime?: number; duplicate?: true; firstSeenTimeHumane: string; lastSeenTimeHumane: string; plate?: string; }; export type ColourData = { id: string | number; cells: number[][]; }; export type ColourDetectionPayload = { cameraFeedID: CameraID; regions: ColourData[]; }; export type SystemSettings = { deviceName: string; localTimeZone: string; timeSource: string; SNTPServer: string; SNTPIntervalMinutes: number; }; export type NetworkConfig = { ipAddress: string; subnetMask: string; gateway: string; primaryServer?: string; secondaryServer?: string; }; export type CustomFieldConfig = { label: string; value: string; }; export type BlackBoardOptions = { operation?: string; path?: string; value?: object | string | number | (string | number)[] | null; }; export type CameraZoomConfig = { cameraFeedID: string; zoomLevel: number }; export type versionInfo = { version: string; revision: string; buildtime: string; appname: string; MAC: string; timeStamp: number; UUID: string; proquint: string; "Serial No.": string; "Model No.": string; };