declare enum FormFieldsEnum {
    id = "id",
    userId = "userId",
    userUniqueId = "userUniqueId",
    itemId = "itemId",
    playerId = "playerId",
    createdAt = "createdAt",
    updatedAt = "updatedAt",
    deletedAt = "deletedAt",
    blockedAt = "blockedAt",
    sortOrderNo = "sortOrderNo",
    userData = "userData",
    playerData = "playerData",
    otherPlayerId = "otherPlayerId",
    otherPlayerData = "otherPlayerData",
    isActive = "isActive",
    extraData = "extraData",
    title = "title",
    description = "description",
    isBlocked = "isBlocked",
    actions = "actions",
    action = "action",
    imageFile = "imageFile",
    searchText = "searchText",
    iconFile = "iconFile",
    gameTitle = "gameTitle",
    receptScreenshotFile = "receptScreenshotFile",
    body = "body",
    content = "content",
    fcmDeviceToken = "fcmDeviceToken",
    fcmDeviceTokens = "fcmDeviceTokens",
    apnsDeviceToken = "apnsDeviceToken",
    apnsDeviceTokens = "apnsDeviceTokens",
    subtitle = "subtitle",
    tag = "tag",
    tags = "tags",
    badge = "badge",
    notification = "notification",
    notifications = "notifications",
    data = "data",
    clickAction = "clickAction",
    link = "link",
    group = "group",
    groupSummary = "groupSummary",
    sound = "sound",
    importance = "importance",
    visibility = "visibility",
    light = "light",
    lights = "lights",
    lightColor = "lightColor",
    vibration = "vibration",
    channel = "channel",
    channels = "channels",
    receive = "receive",
    value = "value",
    actionId = "actionId",
    inputValue = "inputValue",
    firstName = "firstName",
    lastName = "lastName",
    name = "name",
    email = "email",
    phoneNumber = "phoneNumber",
    password = "password",
    passwordConfirmation = "passwordConfirmation",
    withdrawOptions = "withdrawOptions",
    cnic = "cnic",
    city = "city",
    country = "country",
    address = "address",
    referredBy = "referredBy",
    referralCode = "referralCode",
    disabled = "disabled",
    photoURL = "photoURL",
    emailVerified = "emailVerified",
    emailVerifiedAt = "emailVerifiedAt",
    balance = "balance",
    permissions = "permissions",
    role = "role",
    customClaims = "customClaims",
    age = "age",
    gender = "gender",
    constellation = "constellation",
    hometown = "hometown",
    language = "language",
    profileCompletePercentageNumber = "profileCompletePercentageNumber",
    birthdayDate = "birthdayDate",
    aboutMe = "aboutMe",
    hobbies = "hobbies",
    lifeStyle = "lifeStyle",
    music = "music",
    movies = "movies",
    travel = "travel",
    books = "books",
    gym = "gym",
    food = "food",
    cleanliness = "cleanliness",
    smoke = "smoke",
    pets = "pets",
    guests = "guests",
    occupation = "occupation",
    foodPreference = "foodPreference",
    workSchedule = "workSchedule",
    overnightGuests = "overnightGuests",
    getUpTime = "getUpTime",
    goToBedTime = "goToBedTime",
    roomPreference = "roomPreference",
    roommatePreference = "roommatePreference",
    whereWantToLive = "whereWantToLive",
    moveInDate = "moveInDate",
    budget = "budget",
    placePreference = "placePreference",
    buildingType = "buildingType",
    other = "other",
    min = "min",
    max = "max",
    verificationCode = "verificationCode",
    maxPlayersAllowed = "maxPlayersAllowed",
    feePerPlayer = "feePerPlayer",
    serviceCharges = "serviceCharges",
    image = "image",
    minPlayersToStartGame = "minPlayersToStartGame",
    isPrivate = "isPrivate",
    roomCode = "roomCode",
    status = "status",
    gameId = "gameId",
    gameData = "gameData",
    gameRoomPlayerIds = "gameRoomPlayerIds",
    gameRoomPlayersData = "gameRoomPlayersData",
    gameRoomWillStartAt = "gameRoomWillStartAt",
    playerJoinCutoffTime = "playerJoinCutoffTime",
    firstPlayerGameRoomJoinedAt = "firstPlayerGameRoomJoinedAt",
    engagerStartedTheActualGameAt = "engagerStartedTheActualGameAt",
    gameRoomWinnerPlayerId = "gameRoomWinnerPlayerId",
    gameRoomResultScreenShot = "gameRoomResultScreenShot",
    timerForEngagerToStartActualGameInMinutes = "timerForEngagerToStartActualGameInMinutes",
    timerForPlayersToJoinActualGameInMinutes = "timerForPlayersToJoinActualGameInMinutes",
    actualGameInfo = "actualGameInfo",
    engagerReleasedGameRoomAt = "engagerReleasedGameRoomAt",
    engagerDeclaredGameRoomWinnerAt = "engagerDeclaredGameRoomWinnerAt",
    amount = "amount",
    agentRemarks = "agentRemarks",
    transferMethod = "transferMethod",
    receptScreenshot = "receptScreenshot",
    transactionId = "transactionId",
    balanceBefore = "balanceBefore",
    balanceAfter = "balanceAfter",
    type = "type",
    adminUserId = "adminUserId",
    otherPlayerPhoneNumber = "otherPlayerPhoneNumber",
    otherPlayerName = "otherPlayerName",
    userRemarks = "userRemarks",
    queryKeyValue = "queryKeyValue",
    queryKeyType = "queryKeyType",
    nextPageToken = "nextPageToken",
    apiKey1 = "v89h249v2--c--3-3-3-f-ff-fff-f-f-f-f-ff-f-igh872gv23g97293",
    totalTopupCoins = "totalTopupCoins",
    totalWithdrawCoins = "totalWithdrawCoins",
    totalWonCoins = "totalWonCoins",
    totalTransferredCoins = "totalTransferredCoins",
    totalReceivedCoins = "totalReceivedCoins",
    totalLostCoins = "totalLostCoins",
    totalGamesPlayed = "totalGamesPlayed",
    totalGamesLeft = "totalGamesLeft",
    totalGamesWon = "totalGamesWon",
    totalGamesLost = "totalGamesLost",
    gameWinStreak = "gameWinStreak",
    gameLostStreak = "gameLostStreak",
    lastGamePlayedAt = "lastGamePlayedAt",
    lastGameLeftAt = "lastGameLeftAt",
    lastGameWonAt = "lastGameWonAt",
    lastGameLostAt = "lastGameLostAt",
    totalGameRoomReleasedForThisPlayer = "totalGameRoomReleasedForThisPlayer",
    lastGameRoomReleasedForThisPlayerAt = "lastGameRoomReleasedForThisPlayerAt",
    totalGameRoomReleasedByThisAdminUser = "totalGameRoomReleasedByThisAdminUser",
    lastGameRoomReleasedByThisAdminUserAt = "lastGameRoomReleasedByThisAdminUserAt",
    totalCoinsEarnedAsGameRoomEngager = "totalCoinsEarnedAsGameRoomEngager",
    totalGameRoomsCompletedAsEngager = "totalGameRoomsCompletedAsEngager",
    lastGameRoomsCompletedAsEngagerAt = "lastGameRoomsCompletedAsEngagerAt",
    icon = "icon",
    sendAt = "sendAt",
    sendTo = "sendTo",
    specificUsersPhoneNumbers = "specificUsersPhoneNumbers",
    saveAsDraft = "saveAsDraft",
    roleIdentifier = "roleIdentifier",
    isDefault = "isDefault",
    totalCount = "totalCount",
    totalSoftDeletedCount = "totalSoftDeletedCount",
    totalPlayersCount = "totalPlayersCount",
    totalEngagersCount = "totalEngagersCount",
    totalAdminsCount = "totalAdminsCount",
    totalActiveCount = "totalActiveCount",
    totalBlockedCount = "totalBlockedCount",
    totalCompletedCount = "totalCompletedCount",
    totalReleasedCount = "totalReleasedCount",
    totalServiceCharges = "totalServiceCharges",
    period = "period",
    currency = "currency",
    place = "place",
    rent = "rent",
    generalInfo = "generalInfo",
    location = "location",
    images = "images",
    details = "details",
    latitude = "latitude",
    longitude = "longitude",
    placeId = "placeId",
    streetAddress = "streetAddress",
    apartmentSuit = "apartmentSuit",
    province = "province",
    postCode = "postCode",
    bedroomImages = "bedroomImages",
    washroomImages = "washroomImages",
    kitchenImages = "kitchenImages",
    otherImages = "otherImages",
    availabilityTerm = "availabilityTerm",
    moveOutDate = "moveOutDate",
    minimumLease = "minimumLease",
    houseInfo = "houseInfo",
    otherRequirements = "otherRequirements",
    placeSharingDetail = "placeSharingDetail",
    placeBenefits = "placeBenefits",
    leaseTime = "leaseTime",
    leaseTimeUnit = "leaseTimeUnit",
    bedrooms = "bedrooms",
    washrooms = "washrooms",
    parking = "parking",
    units = "units",
    detail = "detail",
    bedroom = "bedroom",
    livingRoom = "livingRoom",
    kitchen = "kitchen",
    washroom = "washroom",
    livingWithLandlord = "livingWithLandlord",
    livingWithPersonDetails = "livingWithPersonDetails",
    furnished = "furnished",
    benefits = "benefits",
    otherBenefits = "otherBenefits",
    gameType = "gameType",
    thirdPartyAppsData = "thirdPartyAppsData",
    thirdPartyAppData = "thirdPartyAppData",
    pubgAppId = "pubgAppId",
    uniqueId = "uniqueId",
    ludoStarAppId = "ludoStarAppId",
    freeFireAppId = "freeFireAppId",
    callOfDutyAppId = "callOfDutyAppId",
    robloxAppId = "robloxAppId",
    eightBallPoolAppId = "eightBallPoolAppId",
    amongUsAppId = "amongUsAppId",
    unoAppId = "unoAppId",
    miniMilitiaAppId = "miniMilitiaAppId",
    carromAppId = "carromAppId",
    tennisClashAppId = "tennisClashAppId",
    chessAppId = "chessAppId",
    asphalt9AppId = "asphalt9AppId",
    golfBattleAppId = "golfBattleAppId",
    arenaBreakoutAppId = "arenaBreakoutAppId"
}

declare enum ResponseCodeEnum {
    success = "success",
    failed = "failed",
    notFound = "notFound",
    badRequest = "badRequest",
    serverError = "serverError",
    created = "created",
    deleted = "deleted",
    updated = "updated",
    tooManyRequests = "tooManyRequests",
    invalidRequest = "invalidRequest",
    unAuthenticated = "unAuthenticated",
    unAuthorized = "unAuthorized",
    itemExists = "itemExists"
}
declare enum ResponseStatusEnum {
    success = 200,
    failed = 500,
    notFound = 404,
    badRequest = 400,
    created = 201,
    unAuthenticated = 401,
    unAuthorized = 403,
    tooManyRequests = 429,
    invalidRequest = 410,
    itemExists = 10001
}
declare enum RequestTypeEnum {
    get = "get",
    post = "post",
    put = "put",
    delete = "delete"
}
declare enum LinkTargetEnum {
    blank = "_blank"
}
declare enum SearchParamKeysEnum {
    encryptedDataSearchParam = "s"
}
declare enum RequestContentTypeEnum {
    Json = "application/json",
    FormData = "multipart/form-data"
}
declare enum RequestStatusEnum {
    approved = 1,
    rejected = 2
}
declare enum TransferMethodEnum {
    easypaisa = 1,
    jazzcash = 2
}
declare enum QueryKeyTypeEnum {
    id = 1,
    roomCode = 2,
    email = 3,
    phoneNumber = 4,
    uniqueId = 5,
    pubgAppId = 6
}
declare enum ProcessStatusEnum {
    completed = 1,
    rejected = 2
}
declare enum BooleanEnum {
    true = 1,
    false = 0
}
declare enum varTypesEnum {
    STRING = "string",
    OBJECT = "object",
    ARRAY = "array",
    boolean = "boolean",
    NUMBER = "number",
    FUNCTION = "function"
}
declare enum PlatformTypeEnum {
    web = "web",
    android = "android",
    ios = "ios"
}
declare enum TimeUnitEnum {
    Years = "years",
    Months = "months",
    Days = "days",
    Hours = "hours",
    Minutes = "minutes",
    Seconds = "seconds",
    Milliseconds = "milliseconds"
}

declare enum RoleEnum {
    superAdmin = 1,
    admin = 2,
    manager = 3,
    editor = 4,
    creator = 5,
    reviewer = 6,
    player = 7,
    engager = 8
}
declare enum PermissionEnum {
    viewDashboard = 1,
    hideEarnings = 2,
    hideProfile = 3,
    listUsers = 4,
    viewUser = 5,
    createUser = 6,
    updateUser = 7,
    deleteUser = 8,
    forceDeleteUser = 9,
    blockUser = 10,
    unBlockUser = 11,
    updateUserBalance = 12,
    viewTrashedUsers = 13,
    viewTrashedUser = 14,
    listGames = 15,
    viewGame = 16,
    createGame = 17,
    updateGame = 18,
    deleteGame = 19,
    forceDeleteGame = 20,
    blockGame = 21,
    unBlockGame = 22,
    viewTrashedGames = 23,
    viewTrashedGame = 24,
    listGameRooms = 25,
    viewGameRoom = 26,
    createGameRoom = 27,
    updateGameRoom = 28,
    deleteGameRoom = 29,
    forceDeleteGameRoom = 30,
    blockGameRoom = 31,
    unBlockGameRoom = 32,
    createPrivateGameRoom = 33,
    viewTrashedGameRooms = 34,
    viewTrashedGameRoom = 35,
    listTopupRequests = 36,
    viewTopupRequest = 37,
    createTopupRequest = 38,
    updateTopupRequest = 39,
    deleteTopupRequest = 40,
    forceDeleteTopupRequest = 41,
    reviewTopupRequest = 42,
    viewTrashedTopupRequests = 43,
    viewTrashedTopupRequest = 44,
    listWithdrawRequests = 45,
    viewWithdrawRequest = 46,
    createWithdrawRequest = 47,
    updateWithdrawRequest = 48,
    deleteWithdrawRequest = 49,
    forceDeleteWithdrawRequest = 50,
    reviewWithdrawRequest = 51,
    viewTrashedWithdrawRequests = 52,
    viewTrashedWithdrawRequest = 53,
    listRoles = 54,
    viewRole = 55,
    createRole = 56,
    updateRole = 57,
    deleteRole = 58,
    forceDeleteRole = 59,
    reviewRole = 60,
    viewTrashedRoles = 61,
    viewTrashedRole = 62,
    attachRole = 63,
    removeRole = 64,
    addListPermissionsToRole = 65,
    addViewPermissionsToRole = 66,
    addCreatePermissionsToRole = 67,
    addUpdatePermissionsToRole = 68,
    addForceDeletePermissionsToRole = 69,
    addListTrashedPermissionsToRole = 70,
    addViewTrashedPermissionsToRole = 71,
    addReviewPermissionsToRole = 72,
    addOtherPermissionsToRole = 73,
    listTransferCoinsRequests = 74,
    viewTransferCoinsRequest = 75,
    listInAppNotifications = 76,
    viewInAppNotification = 77,
    createInAppNotification = 78,
    updateInAppNotification = 79,
    deleteInAppNotification = 80,
    forceDeleteInAppNotification = 81,
    viewTrashedInAppNotifications = 82,
    viewTrashedInAppNotification = 83,
    sendInAppNotificationToAllPlayers = 84,
    sendInAppNotificationToAllAdminLevelUsers = 85,
    sendInAppNotificationToSpecificPlayers = 86,
    sendInAppNotificationToSpecificAdminLevelUsers = 87,
    scheduleInAppNotifications = 88,
    listAttachments = 89,
    viewAttachment = 90,
    createAttachment = 91,
    updateAttachment = 92,
    deleteAttachment = 93,
    forceDeleteAttachment = 94,
    viewTrashedAttachments = 95,
    viewTrashedAttachment = 96,
    listAppSettings = 97,
    viewAppSetting = 98,
    createAppSetting = 99,
    updateAppSetting = 100,
    deleteAppSetting = 101,
    forceDeleteAppSetting = 102,
    viewTrashedAppSettings = 103,
    viewTrashedAppSetting = 104,
    listTransactions = 105,
    viewTransaction = 106,
    createTransaction = 107,
    updateTransaction = 108,
    deleteTransaction = 109,
    forceDeleteTransaction = 110,
    viewTrashedTransactions = 111,
    viewTrashedTransaction = 112,
    listPlaces = 113,
    viewPlace = 114,
    createPlace = 115,
    updatePlace = 116,
    deletePlace = 117,
    forceDeletePlace = 118,
    viewTrashedPlaces = 119,
    viewTrashedPlace = 120,
    restoreTrashedPlace = 121,
    blockPlace = 122,
    unBlockPlace = 123,
    restoreTrashedUser = 124,
    restoreTrashedGame = 125,
    restoreTrashedGameRoom = 126,
    restoreTrashedTopupRequest = 127,
    restoreTrashedWithdrawRequest = 128,
    restoreTrashedRole = 129,
    restoreTrashedInAppNotification = 130,
    restoreTrashedAttachment = 131,
    restoreTrashedAppSetting = 132,
    restoreTrashedTransaction = 133,
    addCoinsToUserAccount = 134,
    removeCoinsFromUserAccount = 135,
    listAdminCoinsUpdateLogs = 136,
    viewAdminCoinsUpdateLog = 137,
    listUserDetails = 138,
    viewUserDetail = 139,
    createUserDetail = 140,
    updateUserDetail = 141,
    deleteUserDetail = 142,
    forceDeleteUserDetail = 143,
    viewTrashedUserDetails = 144,
    viewTrashedUserDetail = 145
}
declare enum _UserRoleEnum {
    superAdmin = "197g24g-28h3v2g9g972g3f",
    admin = "28h3v2g9g9--72g3f",
    manager = "38h3vrv3-ion2g9g97-2g3f",
    editor = "48h3v2g9g97-2g3f",
    creator = "58h3v2g9g8h-972g3f",
    reviewer = "68h-3v2g9g972g3f",
    player = "78h3v2g9-g972g3f",
    engager = "8hfrfr----8h3v2g9-g972g3f"
}
declare enum PermissionTypeEnum {
    viewTrashedItem = 1,
    viewTrashedItems = 2,
    viewBlockedItem = 3
}
declare enum PermissionCheckModeEnum {
    every = 1,
    any = 2
}

interface IGenericObject extends Record<string, any> {
}
interface IDefaultDBColumns {
    [FormFieldsEnum.id]: string;
    [FormFieldsEnum.uniqueId]?: string;
    [FormFieldsEnum.userUniqueId]?: string;
    [FormFieldsEnum.userId]?: string;
    [FormFieldsEnum.sortOrderNo]?: number;
    [FormFieldsEnum.createdAt]?: string | number;
    [FormFieldsEnum.updatedAt]?: string | number;
    [FormFieldsEnum.deletedAt]?: string | number;
    [FormFieldsEnum.blockedAt]?: string | number;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IPaginationOptions {
    offset?: number;
    limit?: number;
}

export { BooleanEnum as B, FormFieldsEnum as F, type IGenericObject as I, LinkTargetEnum as L, PermissionCheckModeEnum as P, QueryKeyTypeEnum as Q, RoleEnum as R, SearchParamKeysEnum as S, TimeUnitEnum as T, _UserRoleEnum as _, PermissionEnum as a, type IPaginationOptions as b, RequestStatusEnum as c, TransferMethodEnum as d, PermissionTypeEnum as e, PlatformTypeEnum as f, ProcessStatusEnum as g, RequestContentTypeEnum as h, RequestTypeEnum as i, ResponseCodeEnum as j, ResponseStatusEnum as k, type IDefaultDBColumns as l, varTypesEnum as v };
