Spaces:
Running
Running
import { ClapEntity } from "@aitube/clap"; | |
import { TimelineSegment } from "@aitube/timeline"; | |
export type ResolverState = { | |
isRunning: boolean; | |
isPaused: boolean; | |
defaultParallelismQuotas: { | |
video: number; | |
image: number; | |
voice: number; | |
sound: number; | |
music: number; | |
}; | |
currentParallelismQuotaForVideo: number; | |
currentParallelismQuotaForImage: number; | |
currentParallelismQuotaForVoice: number; | |
currentParallelismQuotaForSound: number; | |
currentParallelismQuotaForMusic: number; | |
nbPendingRequestsForVideo: number; | |
nbPendingRequestsForImage: number; | |
nbPendingRequestsForVoice: number; | |
nbPendingRequestsForSound: number; | |
nbPendingRequestsForMusic: number; | |
nbRequestsRunningInParallel: number; | |
isBusyResolving: boolean; | |
}; | |
export type ResolverControls = { | |
startLoop: () => void; | |
runLoop: () => Promise<void>; | |
togglePause: (isPaused?: boolean) => boolean; | |
/** | |
* This resolve an entity (eg. a character or a location) | |
* | |
* This will generate for instance an image for the face and/or an audio file for the voice | |
* for the entity, based on the entity description. | |
* | |
* By default, both the face and the voice will be generated. | |
* But this can be override | |
* | |
* @param entity | |
* @param field (optional) | |
* @returns | |
*/ | |
resolveEntity: (entity: ClapEntity, field?: 'face' | 'voice') => Promise<ClapEntity>; | |
/** | |
* This resolve a segment | |
* | |
* Note: while we return a clap segment, the original will be replaced, too | |
* | |
* @param segment | |
* @returns | |
*/ | |
resolveSegment: (segment: TimelineSegment) => Promise<TimelineSegment>; | |
}; | |
export type ResolverStore = ResolverState & ResolverControls; | |