import { CSSProperties } from "react";

//#region src/components/systemSettings/registry/types.d.ts
interface MultiLanguageText {
  en: string;
  'zh-CN': string;
  'zh-HK': string;
  'ja': string;
  'pt': string;
  original: string;
}
interface BaseItem {
  id: number;
  name: string | MultiLanguageText;
  code: string;
  order?: number;
}
interface SettingItem extends BaseItem {
  key?: string;
  scopes?: string[];
  groupId?: number;
  group_id?: number;
  fieldType?: string;
  type?: string;
  interfaceType?: string;
  interface?: string;
  description?: string | MultiLanguageText;
  systemDefaultValue?: string;
  default?: string;
  schema?: any;
  title?: string | MultiLanguageText;
  sort: number;
  created_at?: string | null;
  updated_at?: string | null;
  deleted_at?: string | null;
}
interface SettingGroup extends BaseItem {
  items: SettingItem[];
  expanded?: boolean;
  sort: number;
  description?: MultiLanguageText;
  title?: MultiLanguageText;
}
interface Section extends BaseItem {
  icon?: string;
  description?: string | MultiLanguageText;
  groups: SettingGroup[];
  created_at?: string | null;
  updated_at?: string | null;
  deleted_at?: string | null;
}
interface RegistryProps {
  className?: string;
  style?: CSSProperties;
  sections?: Section[];
  selectedSectionId?: number;
  onSectionSelect?: (sectionId: number) => void;
  onDataChange?: (sections: Section[]) => void;
  scene?: string;
}
//#endregion
export { RegistryProps };