import { AxiosRequestConfig } from 'axios'; import { UUID } from 'crypto'; import { FormattedResponse } from '../utils/formatResponse.utils'; import { AuthResponse } from './auth.types'; import { CreateChallenge } from './challenge.types'; import { LoginResponse } from './loginResponse.types'; import { OTP } from './otp.types'; import { Pagination } from './pagination.types'; import { Permission } from './permission.types'; import { CreateRole, EditRole, ListRole, Role, RoleWithPermission, SearchPermission } from './role.types'; import { Setting, SettingList } from './setting.types'; import { User, UserRole } from './user.types'; import { WalletLogin } from './walletLogin.types'; export type AppClient = { listConstants: (name: string, config?: AxiosRequestConfig) => Promise>; }; export type AuthClient = { login: (data: OTP, config?: AxiosRequestConfig) => Promise>; getOtp: (data: OTP, config?: AxiosRequestConfig) => Promise>; walletLogin: (data: WalletLogin, config?: AxiosRequestConfig) => Promise>; getChallenge: (data: CreateChallenge, config?: AxiosRequestConfig) => Promise>; }; export type RoleClient = { createRole: (role: CreateRole) => Promise>; listRole: (data?: ListRole, config?: AxiosRequestConfig) => Promise>; searchRoleByPermission: (data: SearchPermission, config?: AxiosRequestConfig) => Promise>; updateRole: (name: string, data: EditRole, config?: AxiosRequestConfig) => Promise>; deleteRole: (name: string, config?: AxiosRequestConfig) => Promise>; getRole: (name: string, config?: AxiosRequestConfig) => Promise>; listPermissionsByRole: (name: string, config?: AxiosRequestConfig) => Promise>; }; export type SettingClient = { listSettings: (data?: Pagination, config?: AxiosRequestConfig) => Promise>; create: (data: Setting, config?: AxiosRequestConfig) => Promise>; getByName: (name: string, config?: AxiosRequestConfig) => Promise>; update: (data: Setting, config?: AxiosRequestConfig) => Promise>; }; export type UserClient = { createUser: (data: User, config?: AxiosRequestConfig) => Promise>; getUser: (uuid: UUID, config?: AxiosRequestConfig) => Promise>; updateUser: (uuid: UUID, data: User, config?: AxiosRequestConfig) => Promise>; removeUser: (uuid: UUID, config?: AxiosRequestConfig) => Promise>; listUsers: (data?: Pagination, config?: AxiosRequestConfig) => Promise>; getMe: (config?: AxiosRequestConfig) => Promise>; updateMe: (data: User, config?: AxiosRequestConfig) => Promise>; listRoles: (uuid: UUID, config?: AxiosRequestConfig) => Promise>; addRoles: (uuid: UUID, roles: string[], config?: AxiosRequestConfig) => Promise>; removeRoles: (uuid: UUID, roles: string[], config?: AxiosRequestConfig) => Promise>; };