-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtypes.ts
More file actions
95 lines (78 loc) · 1.79 KB
/
Copy pathtypes.ts
File metadata and controls
95 lines (78 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import type { ReactNode } from 'react';
export type Screen = 'Home' | 'Act' | 'Rights' | 'Guide' | 'Settings';
export interface NavItem {
id: Screen;
label: string;
icon: ReactNode;
}
export interface Evidence {
id:string; // Unique ID for list keys
timestamp: string; // ISO 8601 format
mediaType: 'video' | 'audio' | 'photo';
incidentType: string;
notes?: string;
// In a real implementation, location, fileHash, etc. would be here.
}
export type AlertType = 'Immediate Threat' | 'Area Watch' | 'Pattern Alert' | 'All Clear';
export interface Alert {
id: string;
type: AlertType;
title: string;
location: string;
timestamp: string; // ISO 8601 format
description: string;
verified: boolean;
}
export interface Resource {
name: string;
description: string;
website?: string;
phone?: string;
}
export interface ResourceCategory {
id: string;
title: string;
description: string;
icon: string; // Emoji for simplicity
resources: Resource[];
}
export interface Location {
lat: number;
lon: number;
}
export interface ScanSource {
uri: string;
title: string;
}
export interface ScanResult {
text: string;
sources: ScanSource[];
}
export interface EmergencyContact {
name: string;
phone: string;
}
export interface FallbackLocation {
city: string;
state: string;
zip: string;
}
export interface UserSettings {
fallbackLocation: FallbackLocation;
emergencyContacts: EmergencyContact[];
geminiApiKey?: string;
geminiModel?: string;
}
export interface RecordingLawResult {
consentType: 'One-Party' | 'Two-Party' | 'Varies' | 'Unclear';
summary: string;
disclaimer: string;
}
export interface JargonBusterResult {
term: string;
explanation: string;
}
export interface ChecklistItem {
text: string;
completed: boolean;
}