import * as apid from '../../../api' ; import { OperatorFinishEncodeInfo } from '../event/IOperatorEncodeEvent' ; import { AddVideoFileOption , UploadedVideoFileOption } from '../operator/recorded/IRecordedManageModel' ; export interface IPCReservationManageModel { getBroadcastStatus ( ) : Promise < apid . BroadcastStatus > ; add ( option ) : Promise < apid . ReserveId > ; update ( reserveId ) : Promise < void > ; updateRule ( ruleId ) : Promise < void > ; updateAll ( isUntilComplete ) : Promise < void > ; cancel ( reserveId ) : Promise < void > ; removeSkip ( reserveId ) : Promise < void > ; removeOverlap ( reserveId ) : Promise < void > ; edit ( reserveId , option ) : Promise < void > ; clean ( ) : Promise < void > ; } export interface IPCRecordedManageModel { delete ( recordedId ) : Promise < void > ; updateVideoFileSize ( videoFileId ) : Promise < void > ; addVideoFile ( option ) : Promise < apid . VideoFileId > ; addUploadedVideoFile ( option ) : Promise < void > ; createNewRecorded ( option ) : Promise < apid . RecordedId > ; deleteVideoFile ( videoFileId , isIgnoreProtection ? ) : Promise < void > ; changeProtect ( recordedId , isProtect ) : Promise < void > ; videoFileCleanup ( ) : Promise < void > ; dropLogFileCleanup ( ) : Promise < void > ; } export interface IPCRecordedTagManageModel { create ( name , color ) : Promise < apid . RecordedTagId > ; update ( tagId , name , color ) : Promise < void > ; setRelation ( tagId , recordedId ) : Promise < void > ; delete ( tagId ) : Promise < void > ; deleteRelation ( tagId , recordedId ) : Promise < void > ; } export interface IPCRecordingManageModel { resetTimer ( ) : void ; } export interface IPCRuleManageModel { add ( rule ) : Promise < apid . RuleId > ; update ( rule ) : Promise < void > ; enable ( ruleId ) : Promise < void > ; disable ( ruleId ) : Promise < void > ; delete ( ruleId ) : Promise < void > ; deletes ( ruleIds ) : Promise < apid . RuleId [ ] > ; } export interface IPCThumbnailManageModel { regenerate ( ) : Promise < void > ; fileCleanup ( ) : Promise < void > ; add ( videoFileId ) : Promise < void > ; delete ( thumbnailId ) : Promise < void > ; } export interface IPCOperatorEncodeEvent { emitFinishEncode ( info ) : Promise < void > ; } export default interface IIPCClient { reserveation : IPCReservationManageModel ; recorded : IPCRecordedManageModel ; recordedTag : IPCRecordedTagManageModel ; recording : IPCRecordingManageModel ; rule : IPCRuleManageModel ; thumbnail : IPCThumbnailManageModel ; encodeEvent : IPCOperatorEncodeEvent ; }