Bot & Automation
AI Creator Studio Telegram
/root/hermes-projects/AI Creator Studio Telegram
packages/provider-adapters/src/provider-types.ts
text
import type { GenerationMode, ResourceEstimate } from "@ai-creator/core";
export type ProviderCapability = GenerationMode;
export interface ProviderGenerateInput {
mode: GenerationMode;
prompt?: string;
settings?: Record<string, unknown>;
mediaAssetId?: string;
}
export interface ProviderGenerateResult {
providerId: string;
providerJobId: string;
status: "completed" | "failed";
output: {
kind: "image" | "video";
mimeType: string;
storageKey: string;
};
usage: {
credits: number;
tokens: number;
};
}
export interface ProviderAdapter {
id: string;
displayName: string;
capabilities: ProviderCapability[];
estimate(input: ProviderGenerateInput): Promise<ResourceEstimate>;
generate(input: ProviderGenerateInput): Promise<ProviderGenerateResult>;
getBalance(): Promise<{ creditBalance: number | string; tokenBalance: number | string }>;
getRateLimit(): Promise<{ status: "available" | "limited"; resetAt: string | null }>;
}