import type { BuilderScreen } from "@/lib/admin/builder/types";
import type {
  NavigationConditionDefinition,
  ScreenDefinition,
  ScreenVariantDefinition,
} from "@/lib/funnel/types";

export type VariantDefinition = ScreenVariantDefinition<ScreenDefinition>;
export type VariantCondition = NavigationConditionDefinition;
export type ListBuilderScreen = BuilderScreen & { template: "list" };

export interface VariantOverridesEditorProps {
  baseScreen: BuilderScreen;
  overrides: VariantDefinition["overrides"];
  onChange: (overrides: VariantDefinition["overrides"]) => void;
}

export interface VariantConditionEditorProps {
  condition: VariantCondition;
  allScreens: BuilderScreen[];
  onChange: (condition: VariantCondition) => void;
}

export interface VariantPanelProps {
  variant: VariantDefinition;
  index: number;
  isExpanded: boolean;
  baseScreen: BuilderScreen;
  allScreens: BuilderScreen[];
  onToggle: () => void;
  onChange: (variant: VariantDefinition) => void;
  onDelete: () => void;
}
