camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
582 lines (581 loc) • 17.2 kB
TypeScript
import { z } from 'zod';
declare const scheduleSchema: z.ZodObject<{
start: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
stop: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
isActive: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}>;
export declare const streamTriggerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"manual">;
ioPort: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "manual";
ioPort: string | null;
}, {
type: "manual";
ioPort: string | null;
}>, z.ZodObject<{
type: z.ZodLiteral<"onetime">;
startTime: z.ZodNumber;
stopTime: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
type: "onetime";
startTime: number;
stopTime: number;
}, {
type: "onetime";
startTime: number;
stopTime: number;
}>, z.ZodObject<{
type: z.ZodLiteral<"recurrent">;
schedule: z.ZodArray<z.ZodObject<{
start: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
stop: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
isActive: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}>, "many">;
}, "strip", z.ZodTypeAny, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
}, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
}>]>;
export type TStreamTrigger = z.infer<typeof streamTriggerSchema>;
export type TStreamTriggerType = TStreamTrigger['type'];
export type TTriggerSchedule = z.infer<typeof scheduleSchema>;
export declare const streamInputTypeSchema: z.ZodUnion<[z.ZodLiteral<"CSw">, z.ZodLiteral<"CRS">, z.ZodLiteral<"RTSP_URL">]>;
export type TStreamInputType = z.infer<typeof streamInputTypeSchema>;
export declare const streamingProtocolTypeSchema: z.ZodUnion<[z.ZodLiteral<"RTMP">, z.ZodLiteral<"RTMPS">, z.ZodLiteral<"HLS_PUSH">]>;
export type TStreamingProtocolType = z.infer<typeof streamingProtocolTypeSchema>;
export declare const videoCodecSchema: z.ZodUnion<[z.ZodLiteral<"h264">, z.ZodLiteral<"h265">, z.ZodLiteral<"av1">]>;
export type TVideoCodec = z.infer<typeof videoCodecSchema>;
export declare const overlaysSchema: z.ZodUnion<[z.ZodLiteral<"all">, z.ZodLiteral<"text">, z.ZodLiteral<"image">, z.ZodLiteral<"application">, z.ZodLiteral<"">, z.ZodLiteral<"off">]>;
export type TOverlays = z.infer<typeof overlaysSchema>;
export declare const streamDelaySchema: z.ZodObject<{
value: z.ZodNumber;
unit: z.ZodUnion<[z.ZodLiteral<"seconds">, z.ZodLiteral<"minutes">, z.ZodLiteral<"hours">]>;
}, "strip", z.ZodTypeAny, {
value: number;
unit: "seconds" | "minutes" | "hours";
}, {
value: number;
unit: "seconds" | "minutes" | "hours";
}>;
export type TStreamDelay = z.infer<typeof streamDelaySchema>;
export type TStreamDelayUnit = TStreamDelay['unit'];
export declare const internalVapixParametersSchema: z.ZodObject<{
bitrateMode: z.ZodUnion<[z.ZodLiteral<"VBR">, z.ZodLiteral<"MBR">, z.ZodLiteral<"ABR">]>;
maximumBitRate: z.ZodNumber;
retentionTime: z.ZodNumber;
bitRateLimit: z.ZodNumber;
} & {
camera: z.ZodString;
resolution: z.ZodString;
fps: z.ZodNumber;
compression: z.ZodNumber;
govLength: z.ZodNumber;
videoCodec: z.ZodUnion<[z.ZodLiteral<"h264">, z.ZodLiteral<"h265">, z.ZodLiteral<"av1">]>;
h264Profile: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"high">, z.ZodLiteral<"main">, z.ZodLiteral<"baseline">]>>;
audio: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
nbrOfChannels: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
overlays: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"all">, z.ZodLiteral<"text">, z.ZodLiteral<"image">, z.ZodLiteral<"application">, z.ZodLiteral<"">, z.ZodLiteral<"off">]>>;
}, "strip", z.ZodTypeAny, {
camera: string;
resolution: string;
compression: number;
bitrateMode: "VBR" | "MBR" | "ABR";
maximumBitRate: number;
retentionTime: number;
bitRateLimit: number;
audio: 0 | 1;
fps: number;
govLength: number;
videoCodec: "h264" | "h265" | "av1";
overlays?: "" | "text" | "all" | "image" | "application" | "off" | undefined;
h264Profile?: "high" | "main" | "baseline" | undefined;
nbrOfChannels?: 1 | 2 | undefined;
}, {
camera: string;
resolution: string;
compression: number;
bitrateMode: "VBR" | "MBR" | "ABR";
maximumBitRate: number;
retentionTime: number;
bitRateLimit: number;
audio: 0 | 1;
fps: number;
govLength: number;
videoCodec: "h264" | "h265" | "av1";
overlays?: "" | "text" | "all" | "image" | "application" | "off" | undefined;
h264Profile?: "high" | "main" | "baseline" | undefined;
nbrOfChannels?: 1 | 2 | undefined;
}>;
export type TInternalVapixParameters = z.infer<typeof internalVapixParametersSchema>;
export declare const streamVideoSchema: z.ZodObject<{
inputType: z.ZodUnion<[z.ZodLiteral<"CSw">, z.ZodLiteral<"CRS">, z.ZodLiteral<"RTSP_URL">]>;
sourceUrl: z.ZodOptional<z.ZodString>;
internalVapixParameters: z.ZodString;
userVapixParameters: z.ZodString;
streamingProtocol: z.ZodUnion<[z.ZodLiteral<"RTMP">, z.ZodLiteral<"RTMPS">, z.ZodLiteral<"HLS_PUSH">]>;
streamDelay: z.ZodOptional<z.ZodObject<{
value: z.ZodNumber;
unit: z.ZodUnion<[z.ZodLiteral<"seconds">, z.ZodLiteral<"minutes">, z.ZodLiteral<"hours">]>;
}, "strip", z.ZodTypeAny, {
value: number;
unit: "seconds" | "minutes" | "hours";
}, {
value: number;
unit: "seconds" | "minutes" | "hours";
}>>;
}, "strip", z.ZodTypeAny, {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
}, {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
}>;
export type TStreamVideo = z.infer<typeof streamVideoSchema>;
export declare const streamAudioSchema: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
source: z.ZodLiteral<"none">;
}, "strip", z.ZodTypeAny, {
source: "none";
}, {
source: "none";
}>, z.ZodObject<{
source: z.ZodLiteral<"microphone">;
audioChannelNbr: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
}, "strip", z.ZodTypeAny, {
source: "microphone";
audioChannelNbr: 1 | 2;
}, {
source: "microphone";
audioChannelNbr: 1 | 2;
}>, z.ZodObject<{
source: z.ZodLiteral<"file">;
fileName: z.ZodString;
filePath: z.ZodString;
}, "strip", z.ZodTypeAny, {
source: "file";
fileName: string;
filePath: string;
}, {
source: "file";
fileName: string;
filePath: string;
}>, z.ZodObject<{
source: z.ZodLiteral<"url">;
fileName: z.ZodString;
fileUrl: z.ZodString;
avSyncMsec: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
}, {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
}>]>;
export type TStreamAudio = z.infer<typeof streamAudioSchema>;
export type TStreamAudioSource = TStreamAudio['source'];
export type TAudioOfSource<T extends TStreamAudioSource> = {
audio: Extract<TStreamAudio, {
source: T;
}>;
};
export declare const streamCommonSchema: z.ZodObject<{
id: z.ZodNumber;
enabled: z.ZodBoolean;
active: z.ZodBoolean;
title: z.ZodString;
trigger: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"manual">;
ioPort: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "manual";
ioPort: string | null;
}, {
type: "manual";
ioPort: string | null;
}>, z.ZodObject<{
type: z.ZodLiteral<"onetime">;
startTime: z.ZodNumber;
stopTime: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
type: "onetime";
startTime: number;
stopTime: number;
}, {
type: "onetime";
startTime: number;
stopTime: number;
}>, z.ZodObject<{
type: z.ZodLiteral<"recurrent">;
schedule: z.ZodArray<z.ZodObject<{
start: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
stop: z.ZodObject<{
day: z.ZodNumber;
timeS: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
day: number;
timeS: number;
}, {
day: number;
timeS: number;
}>;
isActive: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}, {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}>, "many">;
}, "strip", z.ZodTypeAny, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
}, {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
}>]>;
video: z.ZodObject<{
inputType: z.ZodUnion<[z.ZodLiteral<"CSw">, z.ZodLiteral<"CRS">, z.ZodLiteral<"RTSP_URL">]>;
sourceUrl: z.ZodOptional<z.ZodString>;
internalVapixParameters: z.ZodString;
userVapixParameters: z.ZodString;
streamingProtocol: z.ZodUnion<[z.ZodLiteral<"RTMP">, z.ZodLiteral<"RTMPS">, z.ZodLiteral<"HLS_PUSH">]>;
streamDelay: z.ZodOptional<z.ZodObject<{
value: z.ZodNumber;
unit: z.ZodUnion<[z.ZodLiteral<"seconds">, z.ZodLiteral<"minutes">, z.ZodLiteral<"hours">]>;
}, "strip", z.ZodTypeAny, {
value: number;
unit: "seconds" | "minutes" | "hours";
}, {
value: number;
unit: "seconds" | "minutes" | "hours";
}>>;
}, "strip", z.ZodTypeAny, {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
}, {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
}>;
audio: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
source: z.ZodLiteral<"none">;
}, "strip", z.ZodTypeAny, {
source: "none";
}, {
source: "none";
}>, z.ZodObject<{
source: z.ZodLiteral<"microphone">;
audioChannelNbr: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
}, "strip", z.ZodTypeAny, {
source: "microphone";
audioChannelNbr: 1 | 2;
}, {
source: "microphone";
audioChannelNbr: 1 | 2;
}>, z.ZodObject<{
source: z.ZodLiteral<"file">;
fileName: z.ZodString;
filePath: z.ZodString;
}, "strip", z.ZodTypeAny, {
source: "file";
fileName: string;
filePath: string;
}, {
source: "file";
fileName: string;
filePath: string;
}>, z.ZodObject<{
source: z.ZodLiteral<"url">;
fileName: z.ZodString;
fileUrl: z.ZodString;
avSyncMsec: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
}, {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
}>]>;
}, "strip", z.ZodTypeAny, {
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
}, {
audio: {
source: "none";
} | {
source: "microphone";
audioChannelNbr: 1 | 2;
} | {
source: "file";
fileName: string;
filePath: string;
} | {
source: "url";
fileName: string;
fileUrl: string;
avSyncMsec: number;
};
video: {
inputType: "RTSP_URL" | "CSw" | "CRS";
internalVapixParameters: string;
userVapixParameters: string;
streamingProtocol: "RTMP" | "RTMPS" | "HLS_PUSH";
sourceUrl?: string | undefined;
streamDelay?: {
value: number;
unit: "seconds" | "minutes" | "hours";
} | undefined;
};
enabled: boolean;
id: number;
active: boolean;
title: string;
trigger: {
type: "manual";
ioPort: string | null;
} | {
type: "onetime";
startTime: number;
stopTime: number;
} | {
type: "recurrent";
schedule: {
start: {
day: number;
timeS: number;
};
stop: {
day: number;
timeS: number;
};
isActive: boolean;
}[];
};
}>;
export type TCommonStream = z.infer<typeof streamCommonSchema>;
export {};