@veltdev/sdk
Version:
Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.
112 lines (111 loc) • 2.73 kB
TypeScript
import { Observable } from "rxjs";
import { RecorderType } from "../../utils/enums";
export declare class RecorderConfig {
type: {
audio?: boolean;
video?: boolean;
screen?: boolean;
};
recorderOptions?: MediaRecorderOptions;
}
export declare class RecorderInitData {
/**
* Media Recorder status
*/
status: Observable<string | null>;
/**
* Media Recorder stream
*/
stream?: MediaStream;
/**
* Media Recorder recorded time
*/
recordedTime: Observable<{
duration?: number;
display?: string;
} | null>;
/**
* Type of media recorder, possible values are 'audio', 'video' and 'screen'
*/
type: RecorderType;
/**
* Observable of recorded raw data.
*/
recordedRawData$: Observable<RecordedRawData | null>;
}
export declare class RecordedRawData {
/**
* Blob object of recorded data
*/
blob: Blob;
/**
* Base64 URL of recorded data
*/
url: string;
/**
* Type of recorded data, possible values are 'audio' and 'video'
*/
type: RecorderType;
/**
* Base64 encoded string of thumbnail image of one frame of recorded video
*/
thumbnail?: string;
/**
* Recorded time
*/
recordedTime?: {
duration?: number;
display?: string;
} | null;
/**
* Array of URLs for individual uploaded chunks
*/
chunkUrls?: {
[key: number]: string;
};
}
export declare class RecordedData {
/**
* Annotation ID of recorder annotation
*/
id: string;
/**
* Recorder player tag containing recorder annotation id which can be added anywhere on the DOM
*/
tag: string;
/**
* Type of recorded data, possible values are 'audio', 'video' and 'screen'
*/
type: string;
thumbnailUrl?: string;
thumbnailWithPlayIconUrl?: string;
videoUrl?: string;
audioUrl?: string;
/**
* URL of the hosted website to open video in new tab
*/
videoPlayerUrl?: string;
/**
* URLs for individual uploaded chunks
*/
chunkUrls?: {
[key: number]: string;
};
getThumbnailTag: (url?: string) => string;
}
export declare class RecorderQualityConstraintsOptions {
video?: MediaTrackConstraints;
audio?: MediaTrackConstraints;
}
export declare class RecorderQualityConstraints {
safari?: RecorderQualityConstraintsOptions;
other?: RecorderQualityConstraintsOptions;
}
export declare class RecorderEncodingOptions {
safari?: MediaRecorderOptions;
other?: MediaRecorderOptions;
}
export declare class RecorderDevicePermissionOptions {
audio?: boolean;
video?: boolean;
}