@ -1,9 +1,13 @@
import { Edge } from "@xyflow/react" ;
// Re-export all node and annotation types from domain files
// Re-export all types from domain files
export * from "./annotation" ;
export * from "./nodes" ;
export * from "./providers" ;
export * from "./models" ;
export * from "./workflow" ;
// Import types for use in this file
import type { ProviderType , LLMProvider , LLMModelType } from "./providers" ;
import type { AspectRatio , Resolution , ModelType } from "./models" ;
// Recently used models tracking
export interface RecentModel {
@ -13,26 +17,6 @@ export interface RecentModel {
timestamp : number ;
}
// Import provider types for use in this file
import type { ProviderType , LLMProvider , LLMModelType } from "./providers" ;
// Aspect Ratios (supported by both Nano Banana and Nano Banana Pro)
export type AspectRatio = "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "4:5" | "5:4" | "9:16" | "16:9" | "21:9" ;
// Resolution Options (only supported by Nano Banana Pro)
export type Resolution = "1K" | "2K" | "4K" ;
// Image Generation Model Options
export type ModelType = "nano-banana" | "nano-banana-pro" ;
// Workflow Edge Data
export interface WorkflowEdgeData extends Record < string , unknown > {
hasPause? : boolean ;
}
// Workflow Edge
export type WorkflowEdge = Edge < WorkflowEdgeData > ;
// API Request/Response types for Image Generation
export interface GenerateRequest {
images : string [ ] ; // Now supports multiple images
@ -67,39 +51,3 @@ export interface LLMGenerateResponse {
text? : string ;
error? : string ;
}
// Auto-save configuration stored in localStorage
export interface WorkflowSaveConfig {
workflowId : string ;
name : string ;
directoryPath : string ;
generationsPath : string | null ;
lastSavedAt : number | null ;
}
// Cost tracking data stored per-workflow in localStorage
export interface WorkflowCostData {
workflowId : string ;
incurredCost : number ;
lastUpdated : number ;
}
// Group background color options (dark mode tints)
export type GroupColor =
| "neutral"
| "blue"
| "green"
| "purple"
| "orange"
| "red" ;
// Group definition stored in workflow
export interface NodeGroup {
id : string ;
name : string ;
color : GroupColor ;
position : { x : number ; y : number } ;
size : { width : number ; height : number } ;
locked? : boolean ;
}