jbilcke-hf's picture
jbilcke-hf HF Staff
Upload folder using huggingface_hub
60e3020 verified
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;