forked from SnekNOTSnake/my-personal-list
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Types.d.ts
95 lines (81 loc) · 1.78 KB
/
Types.d.ts
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
declare module '*.module.css'
interface ObjectConstructor {
typedKeys<T>(obj: T): Array<keyof T>
}
type InputChange = React.ChangeEvent<HTMLInputElement>
type TextAreaChange = React.ChangeEvent<HTMLTextAreaElement>
type SelectChange = React.ChangeEvent<HTMLSelectElement>
type InputKeyPress = React.KeyboardEvent<HTMLInputElement>
type FormSubmit = React.FormEvent<HTMLFormElement>
type Theme = 'light' | 'dark'
interface Schedule {
sun: string[]
mon: string[]
tue: string[]
wed: string[]
thu: string[]
fri: string[]
sat: string[]
}
interface PopulatedSchedule {
sun: Series[]
mon: Series[]
tue: Series[]
wed: Series[]
thu: Series[]
fri: Series[]
sat: Series[]
}
interface Settings {
theme: Theme
cwd: string | null
lastPosterPath: string
}
interface Metadata {
encoder: string
source: string
quality: 'unknown' | 'bd' | 'dvd' | 'web'
res: number
duration: number
video: string
audio: string
subtitle: string
}
interface Series extends Metadata {
path: string
fullPath: string
files: string[]
title: string
poster: string
regular: boolean
tags: string[]
epsNum: number
epsWatched: number
rewatchCount: number
notes: string
related: Relation[]
}
interface Relation {
path: string
type:
| 'sequel'
| 'prequel'
| 'side-story'
| 'spin-off'
| 'parent'
| 'summary'
| 'alternative-version'
}
interface Window {
myAPI: {
changeTheme: (theme: Theme) => Promise<Settings>
getSettings: () => Promise<Settings>
getSeries: () => Promise<Series[]>
editSeries: (series: Series) => Promise<Series>
changePoster: (series: Series) => Promise<Series>
openItem: (fullPath: string) => Promise<void>
getSchedule: () => Schedule
changeSchedule: (schedule: Schedule) => Promise<Schedule>
onUpdateSettings: (listener: (newSettings: Settings) => void) => void
}
}