import type { Project, Job, AvailableModel, ImageProjectParams as SogniImageProjectParams, VideoProjectParams as SogniVideoProjectParams, SogniClient, AudioProjectParams as SogniAudioProjectParams, SupernetType, TokenType, BillingMode, SubscriptionEntitlementSnapshot, SubscriptionStatus, SubscriptionPlanId, SubscriptionUsage, ImageOutputFormat, VideoOutputFormat, AudioOutputFormat, AudioFormat, VideoFormat, VideoWorkflowType, ChatMessage, ChatCompletionParams, ChatCompletionChunk, ChatCompletionResult, ChatJobStateEvent, ContentPart, TextContentPart, ImageUrlContentPart, ChatTokenUsage, LLMCostEstimation, LLMJobCost, LLMModelInfo, LLMParamConstraint, LLMSamplingDefaults, ToolDefinition, ToolCall, ToolCallDelta, ToolCallFunction, ToolChoice, ToolFunction, SogniToolsMode, ToolExecutionOptions, ToolExecutionProgress, ToolExecutionResult, ToolHistoryEntry, CreativeWorkflowArtifact, CreativeWorkflowEvent, CreativeWorkflowRecord, CreativeWorkflowSseEvent, CreativeWorkflowStatus, CreativeWorkflowHostedToolName, ListCreativeWorkflowOptions, StartCreativeWorkflowOptions, StartCreativeWorkflowParams, StreamCreativeWorkflowEventsOptions, ControlNetParams, ControlNetName, ControlNetMode, VideoControlNetName, VideoControlNetParams, InputMedia, SogniAttributionConfig, InteractionKind, WorkloadKind, OperationScope, AgentSurface, ExecutionMode, AgentAttributionMetadata, ConnectionAttribution, WorkloadAttributionDefaults, WorkloadAttributionInput, OperationLineage, ProjectEvent, JobEvent, JobPreparation } from '@sogni-ai/sogni-client'; export type { Project, Job, AvailableModel, SupernetType, TokenType, BillingMode, SubscriptionEntitlementSnapshot, SubscriptionStatus, SubscriptionPlanId, SubscriptionUsage, ImageOutputFormat, VideoOutputFormat, AudioOutputFormat, AudioFormat, VideoFormat, VideoWorkflowType, SogniAudioProjectParams as AudioProjectParams, ChatMessage, ChatCompletionParams, ChatCompletionChunk, ChatCompletionResult, ChatJobStateEvent, ContentPart, TextContentPart, ImageUrlContentPart, ChatTokenUsage, LLMCostEstimation, LLMJobCost, LLMModelInfo, LLMParamConstraint, LLMSamplingDefaults, ToolDefinition, ToolCall, ToolCallDelta, ToolCallFunction, ToolChoice, ToolFunction, SogniToolsMode, ToolExecutionOptions, ToolExecutionProgress, ToolExecutionResult, ToolHistoryEntry, CreativeWorkflowArtifact, CreativeWorkflowEvent, CreativeWorkflowRecord, CreativeWorkflowSseEvent, CreativeWorkflowStatus, CreativeWorkflowHostedToolName, ListCreativeWorkflowOptions, StartCreativeWorkflowOptions, StartCreativeWorkflowParams, StreamCreativeWorkflowEventsOptions, ControlNetParams, ControlNetName, ControlNetMode, VideoControlNetName, VideoControlNetParams, InputMedia, SogniAttributionConfig, InteractionKind, WorkloadKind, OperationScope, AgentSurface, ExecutionMode, AgentAttributionMetadata, ConnectionAttribution, WorkloadAttributionDefaults, WorkloadAttributionInput, OperationLineage, ProjectEvent, JobEvent, JobPreparation, }; export type AuthType = 'token' | 'cookies' | 'apiKey'; interface BaseClientConfig { appId?: string; apiKey?: string; appSource?: string; attribution?: SogniAttributionConfig; network?: SupernetType; testnet?: boolean; socketEndpoint?: string; restEndpoint?: string; disableSocket?: boolean; multiInstance?: boolean; allowInsecureTLS?: boolean; autoConnect?: boolean; reconnect?: boolean; reconnectInterval?: number; timeout?: number; debug?: boolean; } export interface TokenAuthConfig extends BaseClientConfig { authType?: 'token'; username: string; password: string; } export interface CookieAuthConfig extends BaseClientConfig { authType: 'cookies'; username?: string; password?: string; } export interface ApiKeyAuthConfig extends BaseClientConfig { authType?: 'apiKey'; apiKey: string; username?: string; password?: string; } export type SogniClientConfig = TokenAuthConfig | CookieAuthConfig | ApiKeyAuthConfig; interface BaseProjectConfig { modelId: string; negativePrompt?: string; stylePrompt?: string; waitForCompletion?: boolean; timeout?: number; onProgress?: (progress: ProjectProgress) => void; onJobCompleted?: (job: Job) => void; onJobFailed?: (job: Job) => void; autoResizeVideoAssets?: boolean; attribution?: WorkloadAttributionInput; } export interface ImageProjectConfig extends Omit, BaseProjectConfig { } export interface VideoProjectConfig extends Omit, BaseProjectConfig { } export interface AudioProjectConfig extends Omit, BaseProjectConfig { } export type ProjectConfig = ImageProjectConfig | VideoProjectConfig | AudioProjectConfig; export interface ProjectResult { project: Project; imageUrls?: string[]; videoUrls?: string[]; lastFrameUrls?: string[]; audioUrls?: string[]; jobs?: Job[]; completed: boolean; error?: ErrorData; } export interface VideoCostEstimateParams extends Omit[0], 'model' | 'duration' | 'fps' | 'numberOfMedia' | 'tokenType'> { modelId: string; width: number; height: number; fps?: number; steps?: number; frames?: number; duration?: number; numberOfMedia?: number; referenceImageCount?: number; tokenType?: TokenType; } export interface AudioCostEstimateParams { modelId: string; duration: number; steps: number; numberOfMedia?: number; tokenType?: TokenType; } export interface CostEstimate { token: string; usd: string; spark: string; sogni: string; } export interface ProjectProgress { projectId: string; percentage: number; completedJobs: number; totalJobs: number; estimatedTimeRemaining?: number; } export interface ErrorData { code: string; message: string; statusCode?: number; details?: any; originalError?: Error; } export declare enum ConnectionStatus { DISCONNECTED = "disconnected", CONNECTING = "connecting", CONNECTED = "connected", RECONNECTING = "reconnecting", FAILED = "failed" } export interface ConnectionState { status: ConnectionStatus; isConnected: boolean; isConnecting: boolean; reconnectAttempts: number; lastError?: ErrorData; connectedAt?: Date; } export interface SizePreset { id: string; label: string; width: number; height: number; ratio: string; aspect: string; } export interface ModelInfo extends AvailableModel { isAvailable: boolean; recommendedSettings?: { steps?: number; guidance?: number; scheduler?: string; frames?: number; fps?: number; }; } export interface BalanceInfo { sogni: number; spark: number; usdEquivalent?: number; lastUpdated: Date; } export interface AccountInfo { username?: string; email?: string; walletAddress?: string; network: SupernetType | null; isUnlimited: boolean; subscription?: SubscriptionEntitlementSnapshot; } export declare const ClientEvent: { readonly CONNECTED: "connected"; readonly DISCONNECTED: "disconnected"; readonly RECONNECTING: "reconnecting"; readonly RECONNECTED: "reconnected"; readonly ERROR: "error"; readonly MODELS_UPDATED: "modelsUpdated"; readonly BALANCE_UPDATED: "balanceUpdated"; readonly PROJECT_CREATED: "projectCreated"; readonly PROJECT_PROGRESS: "projectProgress"; readonly PROJECT_COMPLETED: "projectCompleted"; readonly PROJECT_FAILED: "projectFailed"; readonly JOB_COMPLETED: "jobCompleted"; readonly JOB_FAILED: "jobFailed"; readonly PROJECT_EVENT: "projectEvent"; readonly JOB_EVENT: "jobEvent"; readonly CHAT_TOKEN: "chatToken"; readonly CHAT_COMPLETED: "chatCompleted"; readonly CHAT_ERROR: "chatError"; readonly CHAT_JOB_STATE: "chatJobState"; readonly CHAT_MODELS_UPDATED: "chatModelsUpdated"; }; export type ClientEvent = typeof ClientEvent[keyof typeof ClientEvent]; export interface JobCompletedData { projectId: string; job: Job; imageUrl?: string; videoUrl?: string; lastFrameUrl?: string; audioUrl?: string; jobIndex: number; totalJobs: number; } export interface JobFailedData { projectId: string; job: Job; error?: string; jobIndex: number; totalJobs: number; } export interface ChatErrorData { jobID: string; error: string; message: string; workerName?: string; } export interface ClientEventCallbacks { [ClientEvent.CONNECTED]: () => void; [ClientEvent.DISCONNECTED]: () => void; [ClientEvent.RECONNECTING]: (attempt: number) => void; [ClientEvent.RECONNECTED]: () => void; [ClientEvent.ERROR]: (error: ErrorData) => void; [ClientEvent.MODELS_UPDATED]: (models: ModelInfo[]) => void; [ClientEvent.BALANCE_UPDATED]: (balance: BalanceInfo) => void; [ClientEvent.PROJECT_CREATED]: (project: Project) => void; [ClientEvent.PROJECT_PROGRESS]: (progress: ProjectProgress) => void; [ClientEvent.PROJECT_COMPLETED]: (result: ProjectResult) => void; [ClientEvent.PROJECT_FAILED]: (error: ErrorData) => void; [ClientEvent.JOB_COMPLETED]: (data: JobCompletedData) => void; [ClientEvent.JOB_FAILED]: (data: JobFailedData) => void; [ClientEvent.PROJECT_EVENT]: (event: ProjectEvent) => void; [ClientEvent.JOB_EVENT]: (event: JobEvent) => void; [ClientEvent.CHAT_TOKEN]: (chunk: ChatCompletionChunk) => void; [ClientEvent.CHAT_COMPLETED]: (result: ChatCompletionResult) => void; [ClientEvent.CHAT_ERROR]: (error: ChatErrorData) => void; [ClientEvent.CHAT_JOB_STATE]: (state: ChatJobStateEvent) => void; [ClientEvent.CHAT_MODELS_UPDATED]: (models: Record) => void; } export interface GetModelsOptions { network?: SupernetType; minWorkers?: number; sortByWorkers?: boolean; } export type CreateProjectOptions = ProjectConfig & { retry?: boolean; retryAttempts?: number; retryDelay?: number; }; export interface QwenImageEditConfig extends Omit { contextImages?: InputMedia[]; } //# sourceMappingURL=index.d.ts.map