export interface GetApproverListResponse {
  status: number;
  message: string;
  data: Approval[];
}

export interface Approval {
  _id: number;
  approvers: Approver[];
  level: number;
  type: string;
  transaction: null;
  isDone: boolean;
}

export interface Approver {
  user: User;
  approvedAt: null;
  status: string;
  isNotInvolved: boolean;
}

export interface User {
  _id: string;
  fullName: string;
  key: number;
}

import { DefineComponent } from 'vue';

/**
 * Props for DialogApprovalList component
 */
export interface DialogApprovalListProps {
  /**
   * V-model:visible
   */
  visible: boolean;
  approvals: Approval[];
  showStatus?: boolean;
}

/**
 * Emits for DialogApprovalList component
 */
export type DialogApprovalListEmits = {
  /**
   * Emits when the dialog is closed.
   */
  'update:visible': [state: boolean];
};

/**
 * **TSVue - DialogApprovalList**
 *
 * _DialogApprovalList is a component to displays approval levels and the approvers on each level._
 *
 * --- ---
 * ![TSVue](https://ik.imagekit.io/kurniadev/TS-HEAD-BLACK.png)
 *
 * @group components
 */
declare const DialogApprovalList: DefineComponent<
  DialogApprovalListProps,
  DialogApprovalListEmits
>;

export default DialogApprovalList;
