Browse Source

feat(19-02): extract provider types to providers.ts

Create providers.ts with ProviderType, SelectedModel, ProviderConfig,
ProviderSettings, LLMProvider, and LLMModelType. Update index.ts to
re-export from providers.ts and import types for internal use.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
handoff-20260429-1057
shrimbly 6 months ago
parent
commit
1b486bdfee
  1. 44
      src/types/index.ts
  2. 39
      src/types/providers.ts

44
src/types/index.ts

@ -3,6 +3,18 @@ import { Edge } from "@xyflow/react";
// Re-export all node and annotation types from domain files
export * from "./annotation";
export * from "./nodes";
export * from "./providers";
// Recently used models tracking
export interface RecentModel {
provider: ProviderType;
modelId: string;
displayName: string;
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";
@ -13,17 +25,6 @@ export type Resolution = "1K" | "2K" | "4K";
// Image Generation Model Options
export type ModelType = "nano-banana" | "nano-banana-pro";
// LLM Provider Options
export type LLMProvider = "google" | "openai";
// LLM Model Options
export type LLMModelType =
| "gemini-2.5-flash"
| "gemini-3-flash-preview"
| "gemini-3-pro-preview"
| "gpt-4.1-mini"
| "gpt-4.1-nano";
// Workflow Edge Data
export interface WorkflowEdgeData extends Record<string, unknown> {
hasPause?: boolean;
@ -102,24 +103,3 @@ export interface NodeGroup {
locked?: boolean;
}
// Provider Types for multi-provider support
export type ProviderType = "gemini" | "openai" | "replicate" | "fal";
// Selected model for image/video generation nodes
export interface SelectedModel {
provider: ProviderType;
modelId: string;
displayName: string;
}
export interface ProviderConfig {
id: ProviderType;
name: string;
enabled: boolean;
apiKey: string | null;
apiKeyEnvVar?: string; // For providers using environment variables (e.g., Gemini)
}
export interface ProviderSettings {
providers: Record<ProviderType, ProviderConfig>;
}

39
src/types/providers.ts

@ -0,0 +1,39 @@
/**
* Provider Types
*
* Types for multi-provider support including image generation
* providers and LLM providers.
*/
// Provider Types for multi-provider support (image/video generation)
export type ProviderType = "gemini" | "openai" | "replicate" | "fal";
// Selected model for image/video generation nodes
export interface SelectedModel {
provider: ProviderType;
modelId: string;
displayName: string;
}
export interface ProviderConfig {
id: ProviderType;
name: string;
enabled: boolean;
apiKey: string | null;
apiKeyEnvVar?: string; // For providers using environment variables (e.g., Gemini)
}
export interface ProviderSettings {
providers: Record<ProviderType, ProviderConfig>;
}
// LLM Provider Options
export type LLMProvider = "google" | "openai";
// LLM Model Options
export type LLMModelType =
| "gemini-2.5-flash"
| "gemini-3-flash-preview"
| "gemini-3-pro-preview"
| "gpt-4.1-mini"
| "gpt-4.1-nano";
Loading…
Cancel
Save