// =====================
// GENERATOR — Input & Output types
// =====================
//
// Fix #6 (sebelumnya): Semua tipe input/output platform di-re-export dari
// Zod schema (src/lib/schemas/universal-prompt.schema.ts) sebagai sumber
// kebenaran tunggal.
//
// Fix Issue D: Hapus re-export Platform, GeneratorMode, OutputFormat, VariationCount
// yang sudah tersedia via src/types/platform.ts → src/types/index.ts.
// Re-export duplikat menyebabkan TypeScript memuat dua "copies" yang berbeda
// asal dan bisa menimbulkan confusing error saat assigned cross-module.

export type {
  SeedanceInput,
  GeminiOmniInput,
  KlingMotionInput,
  HiggsfieldInput,
  TikTokUGCInput,
  UniversalPromptInput as PromptInput,
  GeneratorOutput,
  PromptVariation as GeneratedPromptVariation,
  ShotListItem,
  GenerateRequest,
} from "@/lib/schemas/universal-prompt.schema";

// ── API boundary response (tidak ada di schema karena hanya untuk client) ────
export interface GenerateResponse {
  success: boolean;
  data?: import("@/lib/schemas/universal-prompt.schema").GeneratorOutput;
  error?: string;
}

export interface ApiError {
  message: string;
  code?: string;
  details?: unknown;
}

// ── BasePromptInput: base bersama yang digunakan sebagai type guard / extends ─
// Didefinisikan manual karena ini adalah common base, bukan platform-specific type.
// Platform-specific inputs (SeedanceInput, dll) langsung dari Zod infer di atas.
export interface BasePromptInput {
  mode: "simple" | "advanced";
  subject: string;
  style?: string;
  mood?: string;
  language: "id" | "en";
  variations: 1 | 3 | 5;
  negativePrompt?: string;
  referenceImageUrl?: string;
}
