forked from ffplayout/ffplayout
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
156 lines (133 loc) · 3.3 KB
/
index.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import { timezone } from 'dayjs/plugin/timezone.js';
import type { JwtPayload } from 'jwt-decode'
import type { AdvancedConfig } from '~/types/advanced_config'
import type { PlayoutConfig, Playlist as Ply } from '~/types/playout_config'
export {}
declare global {
interface JwtPayloadExt extends JwtPayload {
id: number
channels: number[]
role: string
}
interface PlaylistExt extends Ply {
startInSec: number,
lengthInSec: number
}
interface PlayoutConfigExt extends PlayoutConfig {
playlist: PlaylistExt
}
interface Token {
access: string
refresh: string
}
interface DataAuth {
uuid: string
}
interface Channel {
id: number
extra_extensions: string | string[]
name: string
preview_url: string
public: string
playlists: string
storage: string
timezone?: string
}
interface User {
id: number
username: string
mail?: string
password?: string
confirm?: string
admin?: boolean
channel_ids?: number[]
role_id?: number
}
interface Crumb {
text: string
path: string
}
interface Payload {
method: string
headers: any
body?: any
}
interface Playlist {
channel: string
date: string
program: PlaylistItem[]
}
interface PlaylistItem {
date?: string
uid: string
begin: number
title?: string | null
source: string
duration: number
in: number
out: number
audio?: string
category?: string
custom_filter?: string
overtime?: boolean
}
interface FileObject {
name: string
duration: number
}
interface Folder {
uid: string
name: string
}
interface FileFolderObject {
source: string
parent: string
parent_folders: Folder[]
folders: Folder[]
files: FileObject[]
}
interface FolderObject {
source: string
parent: string
folders: Folder[]
}
interface SourceObject {
type: string
src: string
}
interface TemplateItem {
start: string
duration: string
shuffle: boolean
paths: string[]
}
interface Template {
sources: TemplateItem[]
}
interface BodyObject {
paths?: string[]
template?: Template
}
interface SystemStatistics {
cpu: { cores: number; usage: number }
load: { one: number; five: number; fifteen: number }
memory: { total: number; used: number; free: number }
network?: { name: string; current_in: number; current_out: number; total_in: number; total_out: number }
storage?: { path: string; total: number; used: number }
swap: { total: number; used: number; free: number }
system: { name?: string; kernel?: string; version?: string; ffp_version?: string }
}
interface PlayoutStatus {
media: PlaylistItem
index: number
ingest: boolean
mode: string
elapsed: number
shift: number
title?: string
}
interface SplitTime {
id: number
val: number
}
}