interface Pagination {
  rowsPerPage: number;
}

interface DataOption {
  id: string;
  name: string;
}

interface FormPositionSelectDialog {
  positionId: string;
  positionName: string;
  positionField: string;
  positionType: string;
  positionLevel: string;
  positionExecutive: string | null;
  positionExecutiveField: string;
  positionArea: string;
}

interface FormPositionEmployeeSelectDialog {
  positionId: string;
  positionName: string;
  positionType: string;
  positionLevel: string;
}

interface FormPositionEmployeeSelectRef {
  positionName: object | null;
  positionType: object | null;
  positionLevel: object | null;
  [key: string]: any;
}
interface FormExecutiveRef {
  posExecutiveName: object | null;
  posExecutivePriority: object | null;

  [key: string]: any;
}

interface OptionType {
  id: string;
  posTypeName: string;
}

interface OptionLevel {
  id: string;
  posLevelName: string;
}

interface OptionExecutive {
  id: string;
  posExecutiveName: string;
}

interface FormPositionSelect {
  positionId: string;
  posTypeId: string;
  positionName: string;
  positionField: string;
  positionType: string;
  positionLevel: string;
  positionExecutive: string;
  positionExecutiveField: string;
  positionArea: string;
  isSpecial: boolean;
}
interface ListMenu {
  label: string;
  icon: string;
  type: string;
  color: string;
}

interface RowDetailPositions {
  id: string;
  positionId: string;
  positionName: string;
  positionField: string;
  positionType: string;
  positionLevel: string;
  positionExecutive: string;
  positionExecutiveField: string;
  positionArea: string;
  posTypeId: string;
  posLevelId: string;
  posExecutiveId: string;
  isSpecial: boolean;
}

interface RowListForm {
  id: string;
  posExecutiveName: string;
  posExecutivePriority: number | null;
}

export type {
  Pagination,
  DataOption,
  FormPositionSelect,
  OptionType,
  OptionLevel,
  OptionExecutive,
  ListMenu,
  RowDetailPositions,
  RowListForm,
  FormPositionSelectDialog,
  FormExecutiveRef,
  FormPositionEmployeeSelectDialog,
  FormPositionEmployeeSelectRef,
};
