import { RecordingDestinationType } from '../recording-destination-type'; import { RecordingFormatType } from '../recording-format-type'; import { RecordingOptions } from '../recording-options'; import { RecordingType } from '../recording-type'; import { TranscriptionOptions } from '../transcription-options'; import { StartRecordingCommand } from '../svaml-commands/start-recording-command'; import { StopRecordingCommand } from '../svaml-commands/stop-recording-command'; import { CommandInput } from './command-input'; /** Parameters for {@link Recording.options}. `destination`, `url`, and `credentials` are required. */ export interface RecordingOptionsParameters { destination: RecordingDestinationType; url: string; credentials: string; format?: RecordingFormatType; recordingType?: RecordingType; transcriptionOptions?: TranscriptionOptions; } /** Optional fields for {@link Recording.start}. */ export interface StartRecordingParameters { /** Name of the recording. Maps to `recordingName`. */ name?: string; /** Commands to run when the recording stops. */ onFinish?: CommandInput; /** Commands to run when the recording fails to start. */ onFailure?: CommandInput; } /** * Builds a `startRecording` command. * `options` sets destination, storage URL, credentials, and the optional format, * recording type, and transcription options in one call. */ export declare class RecordingCreator { private nameValue; private optionsValue; private readonly events; /** Maps to `recordingName` on the startRecording command. */ name(name: string): this; /** * Recording options for third-party storage. * `destination`, `url`, and `credentials` are required. * `url` is written to `destinationUrl`. */ options(parameters: RecordingOptionsParameters): this; onFinish(build: CommandInput): this; onFailure(build: CommandInput): this; build(): StartRecordingCommand; } /** * Builds recording options and the recording commands. * `options` returns the options object. `start` and `stop` each return one command. */ export declare const Recording: { /** * Recording options for third-party storage. * `url` is written to `destinationUrl`. */ options(parameters: RecordingOptionsParameters): RecordingOptions; /** * Starts a recording. * `name` is written to `recordingName`. `onFinish` and `onFailure` accept one command, a list, or a sequence callback. */ start(options: RecordingOptions, parameters?: StartRecordingParameters): StartRecordingCommand; /** Stops a recording. `name` is written to `recordingName`. */ stop(name: string): StopRecordingCommand; };