@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
79 lines (78 loc) • 2.76 kB
TypeScript
/**
* Avatar / Lip-sync Generation Processing Utility
*
* Central registry + dispatch for avatar handlers across providers
* (D-ID, HeyGen, Replicate-hosted MuseTalk / SadTalker / Wav2Lip).
*
* Mirrors the static-handler-registry pattern established by
* `TTSProcessor` / `STTProcessor` / `VideoProcessor` / `MusicProcessor`.
*
* @module utils/avatarProcessor
*/
import { ErrorCategory, ErrorSeverity } from "../constants/enums.js";
import type { AvatarHandler, AvatarOptions, AvatarResult } from "../types/index.js";
import { NeuroLinkError } from "./errorHandling.js";
/**
* Avatar-specific error codes.
*/
export declare const AVATAR_ERROR_CODES: {
readonly PROVIDER_NOT_SUPPORTED: "AVATAR_PROVIDER_NOT_SUPPORTED";
readonly PROVIDER_NOT_CONFIGURED: "AVATAR_PROVIDER_NOT_CONFIGURED";
readonly GENERATION_FAILED: "AVATAR_GENERATION_FAILED";
readonly POLL_TIMEOUT: "AVATAR_POLL_TIMEOUT";
readonly INVALID_INPUT: "AVATAR_INVALID_INPUT";
readonly AUDIO_REQUIRED: "AVATAR_AUDIO_REQUIRED";
readonly IMAGE_REQUIRED: "AVATAR_IMAGE_REQUIRED";
readonly AUDIO_TOO_LONG: "AVATAR_AUDIO_TOO_LONG";
};
/**
* Typed error class for avatar-generation failures.
*/
export declare class AvatarError extends NeuroLinkError {
constructor(options: {
code: string;
message: string;
category?: ErrorCategory;
severity?: ErrorSeverity;
retriable?: boolean;
context?: Record<string, unknown>;
originalError?: Error;
});
}
/**
* Static processor managing the avatar handler registry.
*/
export declare class AvatarProcessor {
private static readonly registry;
/**
* Register an avatar handler for a specific provider.
*/
static registerHandler(providerName: string, handler: AvatarHandler): void;
/**
* Check if a provider has a registered avatar handler.
*/
static supports(providerName: string): boolean;
/**
* List the names of all registered providers.
*/
static listProviders(): string[];
/**
* Get a registered avatar handler by provider name.
*
* Exposed publicly so module-level auto-registration code can reuse an
* already-registered primary handler when backfilling its aliases.
*/
static getHandler(providerName: string): AvatarHandler | undefined;
/**
* Clear all registered handlers (for testing).
*/
static clearHandlers(): void;
private static buildSpanAttributes;
/**
* Generate an avatar video via the registered handler.
*
* @throws AvatarError on registry miss, handler-not-configured, or
* generation failure.
*/
static generate(provider: string, options: AvatarOptions): Promise<AvatarResult>;
}