import type { AsukaPhysicalSize } from '../../../core/physicalMeasurement';

export type ViewEngineKind = 'fabric' | '3d';

export interface AsukaView {
  id: string;
  name?: string;
  label?: string;
  width?: number;
  height?: number;
  dpi?: number;
  unit?: 'px' | 'cm' | 'mm' | 'in';
  physicalSize?: AsukaPhysicalSize;
  engine?: ViewEngineKind;
}

export type ViewUnit = 'px' | 'cm' | 'mm' | 'in';

export type ViewFormValues = {
  mode: 'create' | 'edit';
  viewId?: string;
  name: string;
  engine: ViewEngineKind;
  unit: ViewUnit;
  width: number;
  height: number;
  dpi: number;
  presetId: string;
  physicalEnabled: boolean;
  physicalSize: AsukaPhysicalSize;
};

export type ViewPreset = {
  id: string;
  label: string;
  labelKey?: string;
  unit: ViewUnit;
  width: number;
  height: number;
  dpi: number;
};
