@arcware-cloud/pixelstreaming-websdk 0.1.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/DEPENDENCY_LICENSE.md +136 -0
  2. package/LICENSE.md +24 -0
  3. package/README.md +204 -0
  4. package/index.cjs.js +11 -0
  5. package/index.esm.js +11 -0
  6. package/index.umd.js +11 -0
  7. package/package.json +32 -0
  8. package/types/index.d.ts +3 -0
  9. package/types/lib/ApplyUrlHack.d.ts +2 -0
  10. package/types/lib/ArcwareApplication.d.ts +27 -0
  11. package/types/lib/ArcwareConfig.d.ts +34 -0
  12. package/types/lib/ArcwarePixelStreaming.d.ts +84 -0
  13. package/types/lib/domain/ArcwareSettingsSchema.d.ts +185 -0
  14. package/types/lib/domain/EventHandler.d.ts +11 -0
  15. package/types/lib/domain/Session.d.ts +29 -0
  16. package/types/lib/domain/Stats.d.ts +36 -0
  17. package/types/lib/index.d.ts +4 -0
  18. package/types/lib/styles/ArcwarePixelStreamingApplicationStyles.d.ts +388 -0
  19. package/types/lib/ui/ArcwareLogoLoader/index.d.ts +5 -0
  20. package/types/lib/ui/AudioButton/AudioIcon.d.ts +7 -0
  21. package/types/lib/ui/AudioButton/index.d.ts +15 -0
  22. package/types/lib/ui/LoveLetters/index.d.ts +6 -0
  23. package/types/lib/ui/MicButton/index.d.ts +14 -0
  24. package/types/lib/ui/MicIcon/index.d.ts +7 -0
  25. package/types/lib/ui/MicrophoneOverlay/index.d.ts +11 -0
  26. package/types/shared/index.d.ts +1 -0
  27. package/types/shared/lib/Messages/ErrorMessage.d.ts +18 -0
  28. package/types/shared/lib/Messages/LoveLetter.d.ts +18 -0
  29. package/types/shared/lib/Messages/Ping.d.ts +12 -0
  30. package/types/shared/lib/Messages/Queue.d.ts +58 -0
  31. package/types/shared/lib/Messages/SessionId.d.ts +12 -0
  32. package/types/shared/lib/Messages/Stats.d.ts +170 -0
  33. package/types/shared/lib/Messages/StreamInfo.d.ts +152 -0
  34. package/types/shared/lib/Messages/index.d.ts +178 -0
  35. package/types/shared/lib/index.d.ts +1 -0
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@arcware-cloud/pixelstreaming-websdk",
3
+ "description": "WebSDK for easy implementation of pixel streaming with Arcware CloudRT Services. Heavily based on the '@epicgames-ps' library.",
4
+ "version": "0.1.0-beta",
5
+ "type": "commonjs",
6
+ "main": "./index.umd.js",
7
+ "module": "./index.umd.js",
8
+ "types": "./types/index.d.ts",
9
+ "keywords": [
10
+ "arcware",
11
+ "cloudrt",
12
+ "pixelstreaming",
13
+ "epicgames",
14
+ "unrealengine"
15
+ ],
16
+ "author": {
17
+ "name": "Arcware GmbH",
18
+ "email": "info@arcware.com",
19
+ "url": "https://www.arcware.com"
20
+ },
21
+ "license": "MIT",
22
+ "dependencies": {},
23
+ "peerDependencies": {
24
+ "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2": "0.4.0",
25
+ "@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2": "0.3.0",
26
+ "lodash": "4.17.21",
27
+ "lottie-web": "5.10.2",
28
+ "moment": "2.29.4",
29
+ "zod": "3.21.4"
30
+ },
31
+ "cjs": "./index.cjs.js"
32
+ }
@@ -0,0 +1,3 @@
1
+ export * from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2";
2
+ export * from "@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2";
3
+ export * from "./lib";
@@ -0,0 +1,2 @@
1
+ export declare function UrlBuilder(input: () => string, urlFlags?: string): string;
2
+ export declare function ApplyUrlHack(): void;
@@ -0,0 +1,27 @@
1
+ import { Application, UIOptions } from "@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2";
2
+ import { ArcwarePixelStreaming } from "./ArcwarePixelStreaming";
3
+ export declare class ArcwareApplication extends Application {
4
+ static Flags: {
5
+ new (): {};
6
+ noSession: "noSession";
7
+ };
8
+ stream: ArcwarePixelStreaming;
9
+ private videoElementParent;
10
+ private parentElement;
11
+ private responseCallback;
12
+ private webRtcController;
13
+ get rootElement(): HTMLElement;
14
+ private ArcwareSection;
15
+ constructor(options: UIOptions & {
16
+ stream: ArcwarePixelStreaming;
17
+ });
18
+ private adjustSettingsPanel;
19
+ private createAudioToggleButton;
20
+ private createMicToggleButton;
21
+ private uiDefaultButtonVisibilty;
22
+ private autoPlayHandler;
23
+ getApplicationResponse(callback: (response: string) => void): void;
24
+ applicationResponse(response: string): void;
25
+ private applyArcwareStyles;
26
+ emitUIInteraction(descriptor: object | string): void;
27
+ }
@@ -0,0 +1,34 @@
1
+ import { Config } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2";
2
+ import { ConfigParams } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2/types/Config/Config";
3
+ import { Session } from "./domain/Session";
4
+ import { Settings } from "./domain/ArcwareSettingsSchema";
5
+ export interface ArcwareConfigParams extends ConfigParams {
6
+ settings: Settings;
7
+ }
8
+ export declare class ArcwareConfig extends Config {
9
+ /**
10
+ * Can be used to fetch projectId and shareId from the current url.
11
+ * Example:
12
+ * /something/:projectId/:shareId/something?something => { projectId, shareId }
13
+ * /:projectId => { projectId }
14
+ * /:shareId => { shareId }
15
+ * /:shareId/:projectId => { projectId, shareId }
16
+ *
17
+ * The projectId must be uuidv4.
18
+ * The shareId must be "shareId-" prefixed.
19
+ *
20
+ * Usage:
21
+ * // This will spread the projectId and the shareId into the settings. Define anything you want to override after the spread operation.
22
+ * new ArcwareConfig({ settings: { ...ArcwareConfig.PickIdsOfUrl() } });
23
+ */
24
+ static PickIdsOfUrl(): Pick<Settings, "shareId" | "projectId">;
25
+ readonly session: Session;
26
+ readonly settings: Settings;
27
+ private _initialSettings;
28
+ readonly VERSION = "0.0.0";
29
+ constructor(config: ArcwareConfigParams);
30
+ /** Setup connection string. */
31
+ get urlFlags(): string;
32
+ get initialSettings(): Partial<import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").AllSettings>;
33
+ modifyInitialSettings(mouseLock: boolean): void;
34
+ }
@@ -0,0 +1,84 @@
1
+ import { Messages } from "@arcware-cloud/shared-pixelstreaming-websdk";
2
+ import { PixelStreaming } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2";
3
+ import { PixelStreamingOverrides } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2/types/PixelStreaming/PixelStreaming";
4
+ import { ArcwareConfig } from "./ArcwareConfig";
5
+ import { EventHandler } from "./domain/EventHandler";
6
+ import { Session } from "./domain/Session";
7
+ export declare class ArcwarePixelStreaming extends PixelStreaming {
8
+ /** Override default config with ArcwareConfig. */
9
+ config: ArcwareConfig;
10
+ streamInfo?: Messages.StreamInfo;
11
+ private webRtcController;
12
+ loveLettersContainer: HTMLDivElement | undefined;
13
+ private loveLettersList;
14
+ private loveLettersQueue;
15
+ private isProcessingQueue;
16
+ private microphoneOverlay;
17
+ get videoStartTime(): number | undefined;
18
+ constructor(config: ArcwareConfig, overrides?: PixelStreamingOverrides);
19
+ /** Getter for the session object. */
20
+ get session(): Session;
21
+ /**
22
+ * * * * * * *
23
+ * Listen *
24
+ * * * * * * *
25
+ */
26
+ /** On ping the session creation timestamp will be updated. */
27
+ private onPing;
28
+ /** Handle incoming configurations. */
29
+ private onStreamInfo;
30
+ /** On ping the session creation timestamp will be updated. */
31
+ readonly queueHandler: EventHandler<{
32
+ type: "queue";
33
+ queue: {
34
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
35
+ index?: number | undefined;
36
+ queueLength?: number | undefined;
37
+ waited?: number | undefined;
38
+ estimatedWaitTime?: number | undefined;
39
+ averageWaitTime?: number | undefined;
40
+ };
41
+ }>;
42
+ private onQueue;
43
+ /** Error receiver. */
44
+ readonly errorHandler: EventHandler<{
45
+ type: "error";
46
+ code: number;
47
+ reason: string;
48
+ verbosity: number;
49
+ }>;
50
+ private onError;
51
+ /** LoveLetter */
52
+ readonly loveLetterHandler: EventHandler<{
53
+ type: "letter";
54
+ code: number;
55
+ reason: string;
56
+ verbosity: number;
57
+ }>;
58
+ private onLoveLetter;
59
+ /** SessionId */
60
+ readonly sessionIdHandler: EventHandler<string>;
61
+ private onSessionId;
62
+ /** VideoInitialized */
63
+ readonly videoInitializedHandler: EventHandler<never>;
64
+ private onVideoInitialized;
65
+ /** Adding a zod-safe handler. */
66
+ private addMessageHandler;
67
+ /**
68
+ * * * * * *
69
+ * Send *
70
+ * * * * * *
71
+ */
72
+ private sendStats;
73
+ private send;
74
+ private handleResolutionChange;
75
+ removePlayer(): void;
76
+ private handleMouseLock;
77
+ private initLoveLettersContainer;
78
+ private pushLetter;
79
+ private processQueue;
80
+ private handleRemoveLoveLetters;
81
+ toggleAudio(videoElement: HTMLVideoElement, enabled: boolean): void;
82
+ private createMicrophoneOverlay;
83
+ toggleMic(enable: boolean, isDefault: boolean): void;
84
+ }
@@ -0,0 +1,185 @@
1
+ import { z } from "zod";
2
+ /** Arcware Settings. */
3
+ export declare const ArcwareSettingsSchema: z.ZodObject<{
4
+ /** Overwrites the Session-Tool and uses the provided session instead. */
5
+ session: z.ZodOptional<z.ZodString>;
6
+ /** Can be used to be added to the request in order to verify access to private projects.
7
+ * For internal use only. => Preview page.
8
+ */
9
+ token: z.ZodOptional<z.ZodString>;
10
+ /** @deprecated in there for legacy use. Can only be used when token is provided. */
11
+ bypass: z.ZodOptional<z.ZodBoolean>;
12
+ /** Handler for server side error messages. */
13
+ errorHandler: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodObject<{
14
+ type: z.ZodLiteral<"error">;
15
+ code: z.ZodNumber;
16
+ reason: z.ZodString;
17
+ verbosity: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ type: "error";
20
+ code: number;
21
+ reason: string;
22
+ verbosity: number;
23
+ }, {
24
+ type: "error";
25
+ code: number;
26
+ reason: string;
27
+ verbosity: number;
28
+ }>], z.ZodUnknown>, z.ZodVoid>>;
29
+ /** Handler for queue events. */
30
+ queueHandler: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodObject<{
31
+ type: z.ZodLiteral<"queue">;
32
+ queue: z.ZodObject<{
33
+ index: z.ZodOptional<z.ZodNumber>;
34
+ queueLength: z.ZodOptional<z.ZodNumber>;
35
+ waited: z.ZodOptional<z.ZodNumber>;
36
+ estimatedWaitTime: z.ZodOptional<z.ZodNumber>;
37
+ averageWaitTime: z.ZodOptional<z.ZodNumber>;
38
+ valueType: z.ZodEnum<["milliseconds", "seconds", "minutes", "hours", "days"]>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
41
+ /** Show or hide the settings button. */
42
+ index?: number | undefined;
43
+ queueLength?: number | undefined;
44
+ waited?: number | undefined;
45
+ estimatedWaitTime?: number | undefined; /** Show or hide the audio button. */
46
+ averageWaitTime?: number | undefined;
47
+ }, {
48
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
49
+ index?: number | undefined;
50
+ queueLength?: number | undefined;
51
+ waited?: number | undefined;
52
+ estimatedWaitTime?: number | undefined;
53
+ averageWaitTime?: number | undefined;
54
+ }>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ type: "queue";
57
+ queue: {
58
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
59
+ index?: number | undefined;
60
+ queueLength?: number | undefined;
61
+ waited?: number | undefined;
62
+ estimatedWaitTime?: number | undefined;
63
+ averageWaitTime?: number | undefined;
64
+ };
65
+ }, {
66
+ type: "queue";
67
+ queue: {
68
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
69
+ index?: number | undefined;
70
+ queueLength?: number | undefined;
71
+ waited?: number | undefined;
72
+ estimatedWaitTime?: number | undefined;
73
+ averageWaitTime?: number | undefined;
74
+ };
75
+ }>], z.ZodUnknown>, z.ZodVoid>>;
76
+ /** Handler for sessionId message. */
77
+ sessionIdHandler: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodVoid>>;
78
+ /** Handler for love letters. */
79
+ loveLetterHandler: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodObject<{
80
+ type: z.ZodLiteral<"letter">;
81
+ reason: z.ZodString;
82
+ code: z.ZodNumber;
83
+ verbosity: z.ZodNumber;
84
+ }, "strip", z.ZodTypeAny, {
85
+ type: "letter";
86
+ code: number;
87
+ reason: string;
88
+ verbosity: number;
89
+ }, {
90
+ type: "letter";
91
+ code: number;
92
+ reason: string;
93
+ verbosity: number;
94
+ }>], z.ZodUnknown>, z.ZodVoid>>;
95
+ /** Show or hide the fullscreen button. */
96
+ fullscreenButton: z.ZodOptional<z.ZodBoolean>;
97
+ /** Show or hide the settings button. */
98
+ settingsButton: z.ZodOptional<z.ZodBoolean>;
99
+ /** Show or hide the info button. */
100
+ infoButton: z.ZodOptional<z.ZodBoolean>;
101
+ /** Show or hide the audio button. */
102
+ audioButton: z.ZodOptional<z.ZodBoolean>;
103
+ /** Show or hide the microphone button. */
104
+ micButton: z.ZodOptional<z.ZodBoolean>;
105
+ /** Show or hide the connectionStrengthIcon button. */
106
+ connectionStrengthIcon: z.ZodOptional<z.ZodBoolean>;
107
+ shareId: z.ZodOptional<z.ZodString>;
108
+ projectId: z.ZodOptional<z.ZodString>;
109
+ loveLetterLogging: z.ZodOptional<z.ZodBoolean>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ session?: string | undefined;
112
+ token?: string | undefined;
113
+ bypass?: boolean | undefined;
114
+ errorHandler?: ((args_0: {
115
+ type: "error";
116
+ code: number;
117
+ reason: string;
118
+ verbosity: number;
119
+ }, ...args_1: unknown[]) => void) | undefined;
120
+ queueHandler?: ((args_0: {
121
+ type: "queue";
122
+ queue: {
123
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
124
+ index?: number | undefined;
125
+ queueLength?: number | undefined;
126
+ waited?: number | undefined;
127
+ estimatedWaitTime?: number | undefined;
128
+ averageWaitTime?: number | undefined;
129
+ };
130
+ }, ...args_1: unknown[]) => void) | undefined;
131
+ sessionIdHandler?: ((args_0: string, ...args_1: unknown[]) => void) | undefined;
132
+ loveLetterHandler?: ((args_0: {
133
+ type: "letter";
134
+ code: number;
135
+ reason: string;
136
+ verbosity: number;
137
+ }, ...args_1: unknown[]) => void) | undefined;
138
+ fullscreenButton?: boolean | undefined;
139
+ settingsButton?: boolean | undefined;
140
+ infoButton?: boolean | undefined;
141
+ audioButton?: boolean | undefined;
142
+ micButton?: boolean | undefined;
143
+ connectionStrengthIcon?: boolean | undefined;
144
+ shareId?: string | undefined;
145
+ projectId?: string | undefined;
146
+ loveLetterLogging?: boolean | undefined;
147
+ }, {
148
+ session?: string | undefined;
149
+ token?: string | undefined;
150
+ bypass?: boolean | undefined;
151
+ errorHandler?: ((args_0: {
152
+ type: "error";
153
+ code: number;
154
+ reason: string;
155
+ verbosity: number;
156
+ }, ...args_1: unknown[]) => void) | undefined;
157
+ queueHandler?: ((args_0: {
158
+ type: "queue";
159
+ queue: {
160
+ valueType: "milliseconds" | "seconds" | "minutes" | "hours" | "days";
161
+ index?: number | undefined;
162
+ queueLength?: number | undefined;
163
+ waited?: number | undefined;
164
+ estimatedWaitTime?: number | undefined;
165
+ averageWaitTime?: number | undefined;
166
+ };
167
+ }, ...args_1: unknown[]) => void) | undefined;
168
+ sessionIdHandler?: ((args_0: string, ...args_1: unknown[]) => void) | undefined;
169
+ loveLetterHandler?: ((args_0: {
170
+ type: "letter";
171
+ code: number;
172
+ reason: string;
173
+ verbosity: number;
174
+ }, ...args_1: unknown[]) => void) | undefined;
175
+ fullscreenButton?: boolean | undefined;
176
+ settingsButton?: boolean | undefined;
177
+ infoButton?: boolean | undefined;
178
+ audioButton?: boolean | undefined;
179
+ micButton?: boolean | undefined;
180
+ connectionStrengthIcon?: boolean | undefined;
181
+ shareId?: string | undefined;
182
+ projectId?: string | undefined;
183
+ loveLetterLogging?: boolean | undefined;
184
+ }>;
185
+ export type Settings = z.infer<typeof ArcwareSettingsSchema>;
@@ -0,0 +1,11 @@
1
+ /** A helper class to spread the event to additional event handlers added from external sources. */
2
+ export declare class EventHandler<Type> {
3
+ private callbacks;
4
+ /** Returns the added callback on success or null, if something went wrong. */
5
+ add<Callback extends (arg: Type) => void>(callback: Callback): Callback | null;
6
+ /** Returns true if the input callback has been found and removed and false if not. */
7
+ remove<Callback extends (arg: Type) => void>(callback: Callback): boolean;
8
+ constructor();
9
+ /** Emits the event-data for each of the existing handlers. */
10
+ static Emit<Type>(handler: EventHandler<Type>, event: Type): void;
11
+ }
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ declare const ZOptions: z.ZodObject<{
3
+ localStorageKey: z.ZodDefault<z.ZodString>;
4
+ keepSession: z.ZodDefault<z.ZodNumber>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ localStorageKey: string;
7
+ keepSession: number;
8
+ }, {
9
+ localStorageKey?: string | undefined;
10
+ keepSession?: number | undefined;
11
+ }>;
12
+ type Options = z.infer<typeof ZOptions>;
13
+ /** The sessionId is stored in the localStorage to allow for reconnection and
14
+ * to prevent spamming start requests of instances, when smashing F5.
15
+ */
16
+ export declare class Session {
17
+ private _current?;
18
+ get current(): string | undefined;
19
+ get noSession(): boolean;
20
+ get id(): string | null;
21
+ private options;
22
+ private get localStorageKey();
23
+ constructor(options?: Options);
24
+ /** Set's the session with creation date for the given storage key to the localStorage. */
25
+ set(sessionId: string): void;
26
+ /** Removes a session from the localStorage. */
27
+ unset(): void;
28
+ }
29
+ export {};
@@ -0,0 +1,36 @@
1
+ import { AggregatedStats } from "@epicgames-ps/lib-pixelstreamingfrontend-ue5.2";
2
+ export declare function Stats(stats: AggregatedStats): import("zod").objectOutputType<{
3
+ codecs: import("zod").ZodOptional<import("zod").ZodType<Map<string, string>, import("zod").ZodTypeDef, Map<string, string>>>;
4
+ candidatePair: import("zod").ZodOptional<import("zod").ZodType<import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidatePairStats, import("zod").ZodTypeDef, import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidatePairStats>>;
5
+ localCandidates: import("zod").ZodOptional<import("zod").ZodType<import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidateStat[], import("zod").ZodTypeDef, import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidateStat[]>>;
6
+ remoteCandidates: import("zod").ZodOptional<import("zod").ZodType<import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidateStat[], import("zod").ZodTypeDef, import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").CandidateStat[]>>;
7
+ DataChannelStats: import("zod").ZodOptional<import("zod").ZodType<import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").DataChannelStats, import("zod").ZodTypeDef, import("@epicgames-ps/lib-pixelstreamingfrontend-ue5.2").DataChannelStats>>;
8
+ bytesReceived: import("zod").ZodOptional<import("zod").ZodNumber>;
9
+ packetsLost: import("zod").ZodOptional<import("zod").ZodNumber>;
10
+ frameWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
11
+ frameHeight: import("zod").ZodOptional<import("zod").ZodNumber>;
12
+ framesDecoded: import("zod").ZodOptional<import("zod").ZodNumber>;
13
+ framesPerSecond: import("zod").ZodOptional<import("zod").ZodNumber>;
14
+ framesDropped: import("zod").ZodOptional<import("zod").ZodNumber>;
15
+ videoCodec: import("zod").ZodOptional<import("zod").ZodString>;
16
+ audioCodec: import("zod").ZodOptional<import("zod").ZodString>;
17
+ browserInfo: import("zod").ZodOptional<import("zod").ZodObject<{
18
+ userAgent: import("zod").ZodOptional<import("zod").ZodString>;
19
+ platform: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
20
+ language: import("zod").ZodOptional<import("zod").ZodString>;
21
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
22
+ userAgent: import("zod").ZodOptional<import("zod").ZodString>;
23
+ platform: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
24
+ language: import("zod").ZodOptional<import("zod").ZodString>;
25
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
26
+ userAgent: import("zod").ZodOptional<import("zod").ZodString>;
27
+ platform: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
28
+ language: import("zod").ZodOptional<import("zod").ZodString>;
29
+ }, import("zod").ZodTypeAny, "passthrough">>>;
30
+ currentRTT: import("zod").ZodOptional<import("zod").ZodNumber>;
31
+ sessionRunTime: import("zod").ZodOptional<import("zod").ZodString>;
32
+ controlsStreamInput: import("zod").ZodOptional<import("zod").ZodEffects<import("zod").ZodString, string, string>>;
33
+ videoEncoderAvgQP: import("zod").ZodOptional<import("zod").ZodNumber>;
34
+ videoBitrate: import("zod").ZodOptional<import("zod").ZodNumber>;
35
+ audioBitrate: import("zod").ZodOptional<import("zod").ZodNumber>;
36
+ }, import("zod").ZodTypeAny, "passthrough">;
@@ -0,0 +1,4 @@
1
+ export * from "./ArcwareApplication";
2
+ export * from "./ArcwareConfig";
3
+ export * from "./ArcwarePixelStreaming";
4
+ export * from "./styles/ArcwarePixelStreamingApplicationStyles";