import * as i0 from "@angular/core"; export interface RecordStartTimerParameters { recordStartTime: number; recordTimerInterval?: NodeJS.Timeout | null; isTimerRunning: boolean; canPauseResume: boolean; recordChangeSeconds: number; recordPaused: boolean; recordStopped: boolean; roomName: string | null; updateRecordStartTime: (time: number) => void; updateRecordTimerInterval: (interval: NodeJS.Timeout | null) => void; updateIsTimerRunning: (isRunning: boolean) => void; updateCanPauseResume: (canPause: boolean) => void; getUpdatedAllParams: () => RecordStartTimerParameters; [key: string]: any; } export interface RecordStartTimerOptions { parameters: RecordStartTimerParameters; } export type RecordStartTimerType = (options: RecordStartTimerOptions) => Promise; /** * Starts the recording timer and manages its state. * * @param {RecordStartTimerOptions} options - The options for starting the recording timer. * @param {Object} options.parameters - The parameters for the recording timer. * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters. * @param {number} options.parameters.recordStartTime - The start time of the recording. * @param {NodeJS.Timeout | null} options.parameters.recordTimerInterval - The interval ID for the recording timer. * @param {boolean} options.parameters.isTimerRunning - Flag indicating if the timer is currently running. * @param {boolean} options.parameters.canPauseResume - Flag indicating if pause/resume actions are enabled. * @param {number} options.parameters.recordChangeSeconds - The time after which pause/resume actions are enabled. * @param {Function} options.parameters.updateRecordStartTime - Function to update the recording start time. * @param {Function} options.parameters.updateRecordTimerInterval - Function to update the recording timer interval. * @param {Function} options.parameters.updateIsTimerRunning - Function to update the timer running state. * @param {Function} options.parameters.updateCanPauseResume - Function to update the pause/resume state. * * @returns {Promise} A promise that resolves when the timer is started. * * @remarks * This function initializes the recording start time and sets up an interval to update the timer every second. * It also manages the state of the timer, including enabling and disabling pause/resume actions. * The timer is stopped if the recording is paused, stopped, or if the room name is invalid. * * @example * ```typescript * const options: RecordStartTimerOptions = { * parameters: { * recordStartTime: Date.now(), * recordTimerInterval: null, * isTimerRunning: false, * canPauseResume: false, * recordChangeSeconds: 15, * recordPaused: false, * recordStopped: false, * roomName: 'room1', * updateRecordStartTime: (time) => { }, * updateRecordTimerInterval: (interval) => { }, * updateIsTimerRunning: (isRunning) => { }, * updateCanPauseResume: (canPause) => {}, * getUpdatedAllParams: () => { }, * }, * }; * await recordStartTimer(options); * ``` */ export declare class RecordStartTimer { recordStartTimer: ({ parameters }: RecordStartTimerOptions) => Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }