import type { FieldRule } from '@arco-design/web-vue/es/form';

export interface AnyObject {
  [key: string]: unknown;
}

export interface Options {
  value: unknown;
  label: string;
}

export interface NodeOptions extends Options {
  children?: NodeOptions[];
}

export interface GetParams {
  body: null;
  type: string;
  url: string;
}

export interface PostData {
  body: string;
  type: string;
  url: string;
}

export interface Pagination {
  current: number;
  pageSize: number;
  total?: number;
}

export type TimeRanger = [string, string];

export interface GeneralChart {
  xAxis: string[];
  data: Array<{ name: string; value: number[] }>;
}

export type FormRules<T extends string> = Partial<Record<T, FieldRule[]>>;

export interface SelectOptions {
  value: string | number | boolean;
  label: string;
}

export interface OptionListItem {
  value: string;
  label: string;
}
