import { B as BalanceUpdateTypeEnum, G as GameTypeEnum, I as InAppNotificationSendToEnum, C as CoinManagementActionEnum, a as InAppNotificationStatusEnum, b as GameRoomStatusEnum, T as TopupStatusEnum, c as TransactionTypeEnum, W as WithdrawRequestStatusEnum } from '../index-BSPcQ3pe.js';
export { d as BalanceUpdateActionEnum, P as PlayerBalanceUpdateRequestTypeEnum } from '../index-BSPcQ3pe.js';
import { l as IDefaultDBColumns, F as FormFieldsEnum, d as TransferMethodEnum, B as BooleanEnum, R as RoleEnum, a as PermissionEnum, Q as QueryKeyTypeEnum, g as ProcessStatusEnum } from '../index-BiAQ1E-Y.js';

declare const appServiceFee: (envs: any) => {
    gameRoom: {
        leaveFee: {
            amount: number;
            type: BalanceUpdateTypeEnum;
        };
    };
    topup: {
        minTopupAmountAllowed: number;
    };
    withdraw: {
        minWithdrawAmountAllowed: number;
    };
    transfer: {
        minTransferAmountAllowed: number;
    };
};
declare const playAndWinFieldsValidation: {
    readonly transfer: {
        readonly maxPlayerPhoneNumber: 100;
        readonly minPlayerPhoneNumber: 13;
    };
};
declare const timeLimits: {
    readonly engagerStartTime: 15;
    readonly playerJoinTime: 5;
};
declare const playAndWinAppTerms: {
    readonly user: {
        readonly camelCase: "Users";
        readonly smallerCase: "users";
        readonly upperCase: "USERS";
        readonly singularCamelCase: "User";
        readonly singularSmallerCase: "user";
        readonly singularUpperCase: "USER";
    };
    readonly engager: {
        readonly camelCase: "Engagers";
        readonly smallerCase: "engagers";
        readonly upperCase: "ENGAGERS";
        readonly singularCamelCase: "Engager";
        readonly singularSmallerCase: "engager";
        readonly singularUpperCase: "ENGAGER";
    };
    readonly player: {
        readonly camelCase: "Players";
        readonly smallerCase: "players";
        readonly upperCase: "PLAYERS";
        readonly singularCamelCase: "Player";
        readonly singularSmallerCase: "player";
        readonly singularUpperCase: "PLAYER";
    };
    readonly topup: {
        readonly camelCase: "Mawinga Coins";
        readonly smallerCase: "mawinga coins";
        readonly upperCase: "MAWINGA COINS";
        readonly singularCamelCase: "Mawinga Coin";
        readonly singularSmallerCase: "mawinga coin";
        readonly singularUpperCase: "MAWINGA COIN";
    };
    readonly withdraw: {
        readonly camelCase: "Gift Coins to Mawinga";
        readonly smallerCase: "gift coins to mawinga";
        readonly upperCase: "GIFT COINS TO MAWINGA";
        readonly singularCamelCase: "Gift Coin to Mawinga";
        readonly singularSmallerCase: "gift coin to mawinga";
        readonly singularUpperCase: "GIFT COIN TO MAWINGA";
    };
    readonly transferCoin: {
        readonly camelCase: "Gift Coins To Players";
        readonly smallerCase: "gift coins to players";
        readonly upperCase: "GIFT COINS TO PLAYERS";
        readonly singularCamelCase: "Gift Coins To Player";
        readonly singularSmallerCase: "gift coins to player";
        readonly singularUpperCase: "GIFT COINS TO PLAYER";
    };
    readonly gameRoom: {
        readonly camelCase: "Game Rooms";
        readonly smallerCase: "game rooms";
        readonly upperCase: "GAME ROOMS";
        readonly singularCamelCase: "Game Room";
        readonly singularSmallerCase: "game room";
        readonly singularUpperCase: "GAME ROOM";
    };
    readonly game: {
        readonly camelCase: "Games";
        readonly smallerCase: "games";
        readonly upperCase: "GAMES";
        readonly singularCamelCase: "Game";
        readonly singularSmallerCase: "game";
        readonly singularUpperCase: "GAME";
    };
    readonly role: {
        readonly camelCase: "Roles";
        readonly smallerCase: "roles";
        readonly upperCase: "ROLES";
        readonly singularCamelCase: "Role";
        readonly singularSmallerCase: "role";
        readonly singularUpperCase: "ROLE";
    };
    readonly permission: {
        readonly camelCase: "Permissions";
        readonly smallerCase: "permissions";
        readonly upperCase: "PERMISSIONS";
        readonly singularCamelCase: "Permission";
        readonly singularSmallerCase: "permission";
        readonly singularUpperCase: "PERMISSION";
    };
    readonly coinManagement: {
        readonly camelCase: "Coin Managements";
        readonly smallerCase: "coin managements";
        readonly upperCase: "COIN MANAGEMENTS";
        readonly singularCamelCase: "Coin Management";
        readonly singularSmallerCase: "coin management";
        readonly singularUpperCase: "COIN MANAGEMENT";
    };
    readonly amount: {
        readonly camelCase: "No. of Coins";
        readonly smallerCase: "no. of coins";
        readonly upperCase: "NO. OF COINS";
        readonly singularCamelCase: "No. of Coin";
        readonly singularSmallerCase: "no. of coin";
        readonly singularUpperCase: "NO. OF COIN";
        readonly column: "No. of Coins";
        readonly inBetween: "no. of coins";
    };
};

declare const ztkPlayWinMessages: (envs: any) => {
    readonly validation: {
        readonly selectMinimumOneOption: "Select minimum one option.";
        readonly phoneNumberLengthError: "Phone number must be 13 digits.";
        readonly minReferralCodeError: "Referral code must be at least 6 digits.";
        readonly withdrawOptionsRequired: "Withdraw options are required.";
        readonly passwordNotMatchError: "The password did not match.";
        readonly confirmTextNotMatch: "Confirm text does not match.";
        readonly invalidReason: "Please add a valid reason.";
        readonly maxPlayersShouldBeGreaterOrEqualToMinPlayers: "Max players should be greater or equal to min players to start the game.";
        readonly authCheckFailed: "Check failed.";
        readonly userAlreadyExists: "User with this email or phone number already exists.";
        readonly invalidCredential: "Invalid credential.";
        readonly nameRequired: "Name is required.";
        readonly descriptionRequired: "Description is required.";
        readonly invalidAmount: "Invalid amount.";
        readonly amountRequired: "The amount is required.";
        readonly amountMustBeGreaterThanOrEqualTo: `Amount must be greater than or equal to ${number}`;
        readonly phoneNumberMustStartWithCode: "Phone number must start with +92";
        readonly notificationDescriptionLengthError: `Description must contain at most ${string} character(s).`;
    };
    readonly game: {
        readonly gameCreated: "Game created successfully.";
        readonly gameUpdated: "Game updated successfully.";
        readonly gameDeleted: "Game deleted successfully.";
        readonly gameNotFound: "Game not found.";
        readonly noGameIdProvided: "No game ID provided!";
        readonly gameRoomJoined: "Successfully joined the game room.";
        readonly gameRoomLeaved: "Successfully left the game room.";
        readonly gameRoomStarted: "The game has started.";
        readonly gameRoomReleased: "The game has been released.";
    };
    readonly request: {
        readonly requestUpdated: "Request updated successfully.";
        readonly topupRequestSend: "Topup request sent successfully. Please wait for review.";
        readonly topupRequestAdded: "Topup request added successfully.";
        readonly topupRequestUpdated: "Topup request updated successfully.";
        readonly topupVerifiedRequestSend: "Verification information sent successfully. Please wait for review.";
        readonly withdrawRequestSend: "Withdraw request sent successfully. Please wait for review.";
    };
    readonly transfer: {
        readonly transferCoinSuccessfully: "Transfer completed successfully.";
    };
    readonly notification: {
        readonly notificationSend: "Notification sent successfully.";
        readonly notificationUpdatedSuccessfully: "Notification updated successfully.";
        readonly notificationDeletedSuccessfully: "Notification deleted successfully.";
        readonly notificationNotFound: "Notification not found.";
        readonly selectUsersToSendNotification: "Please select users you want to send this notification to.";
    };
    readonly network: {
        readonly networkDisconnected: "Network disconnected.";
    };
};

interface IThirdPartyAppsData {
    [FormFieldsEnum.thirdPartyAppsData]?: {
        [key: string]: string | number | boolean | undefined;
        [FormFieldsEnum.pubgAppId]?: string;
        [FormFieldsEnum.ludoStarAppId]?: string;
        [FormFieldsEnum.freeFireAppId]?: string;
        [FormFieldsEnum.callOfDutyAppId]?: string;
        [FormFieldsEnum.robloxAppId]?: string;
        [FormFieldsEnum.eightBallPoolAppId]?: string;
        [FormFieldsEnum.amongUsAppId]?: string;
        [FormFieldsEnum.unoAppId]?: string;
        [FormFieldsEnum.miniMilitiaAppId]?: string;
        [FormFieldsEnum.carromAppId]?: string;
        [FormFieldsEnum.tennisClashAppId]?: string;
        [FormFieldsEnum.chessAppId]?: string;
        [FormFieldsEnum.asphalt9AppId]?: string;
        [FormFieldsEnum.golfBattleAppId]?: string;
        [FormFieldsEnum.arenaBreakoutAppId]?: string;
    };
}
interface ICommonUserPropsAuthAndDetailsCollection {
    [FormFieldsEnum.name]?: string;
    [FormFieldsEnum.email]?: string;
    [FormFieldsEnum.country]?: string;
    [FormFieldsEnum.city]?: string;
    [FormFieldsEnum.referralCode]?: string;
    [FormFieldsEnum.withdrawOptions]?: Array<TransferMethodEnum>;
    [FormFieldsEnum.phoneNumber]?: string;
    [FormFieldsEnum.createdAt]?: string | number;
    [FormFieldsEnum.updatedAt]?: string | number;
    [FormFieldsEnum.blockedAt]?: string | number;
    [FormFieldsEnum.referredBy]?: string;
    [FormFieldsEnum.cnic]?: string;
    [FormFieldsEnum.emailVerifiedAt]?: string | number;
    [FormFieldsEnum.disabled]?: BooleanEnum;
    [FormFieldsEnum.balance]?: number;
    [FormFieldsEnum.role]?: RoleEnum;
    [FormFieldsEnum.permissions]?: Array<PermissionEnum>;
    [FormFieldsEnum.address]?: string;
    [FormFieldsEnum.photoURL]?: string;
    [FormFieldsEnum.actions]?: string;
    [FormFieldsEnum.emailVerified]?: BooleanEnum;
    [FormFieldsEnum.isBlocked]?: BooleanEnum;
}
interface IUser extends IDefaultDBColumns, IThirdPartyAppsData, ICommonUserPropsAuthAndDetailsCollection {
    [FormFieldsEnum.password]?: string;
    [FormFieldsEnum.passwordConfirmation]?: string;
}

interface IPlayerIdFormData {
    [FormFieldsEnum.playerId]: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface ILoginFormData {
    [FormFieldsEnum.email]: string;
    [FormFieldsEnum.phoneNumber]?: string;
    [FormFieldsEnum.password]: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IRegisterFormData {
    [FormFieldsEnum.email]: string;
    [FormFieldsEnum.phoneNumber]: string;
    [FormFieldsEnum.name]: string;
    [FormFieldsEnum.password]: string;
    [FormFieldsEnum.withdrawOptions]: string[];
    [FormFieldsEnum.cnic]?: string;
    [FormFieldsEnum.city]?: string;
    [FormFieldsEnum.country]?: string;
    [FormFieldsEnum.address]?: string;
    [FormFieldsEnum.referredBy]?: string;
    [FormFieldsEnum.role]?: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IGameFormData {
    [FormFieldsEnum.title]: string;
    [FormFieldsEnum.description]: string;
    [FormFieldsEnum.maxPlayersAllowed]: number;
    [FormFieldsEnum.feePerPlayer]: number;
    [FormFieldsEnum.serviceCharges]: number;
    [FormFieldsEnum.image]: string;
    [FormFieldsEnum.minPlayersToStartGame]: number;
    [FormFieldsEnum.extraData]?: unknown;
    [FormFieldsEnum.gameType]?: GameTypeEnum;
}
interface IGameRoomFormData {
    [FormFieldsEnum.title]: string;
    [FormFieldsEnum.description]: string;
    [FormFieldsEnum.gameId]: string;
    [FormFieldsEnum.isPrivate]: number;
    [FormFieldsEnum.timerForEngagerToStartActualGameInMinutes]: number;
    [FormFieldsEnum.timerForPlayersToJoinActualGameInMinutes]: number;
    [FormFieldsEnum.roomCode]?: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface ITopupRequestFormData {
    [FormFieldsEnum.amount]: number;
    [FormFieldsEnum.agentRemarks]: string;
    [FormFieldsEnum.transferMethod]: TransferMethodEnum;
    [FormFieldsEnum.receptScreenshot]: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IWithdrawRequestFormData {
    [FormFieldsEnum.amount]: number;
    [FormFieldsEnum.agentRemarks]: string;
    [FormFieldsEnum.transferMethod]: TransferMethodEnum;
    [FormFieldsEnum.receptScreenshot]: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface ITransferCoinsRequestFormData {
    [FormFieldsEnum.amount]: number;
    [FormFieldsEnum.otherPlayerPhoneNumber]?: string;
    [FormFieldsEnum.userRemarks]?: string;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IInAppNotificationFormData {
    [FormFieldsEnum.title]: string;
    [FormFieldsEnum.description]: string;
    [FormFieldsEnum.icon]?: string;
    [FormFieldsEnum.image]?: string;
    [FormFieldsEnum.sendAt]?: string;
    [FormFieldsEnum.sendTo]: InAppNotificationSendToEnum;
    [FormFieldsEnum.specificUsersPhoneNumbers]?: string[];
    [FormFieldsEnum.saveAsDraft]?: BooleanEnum;
    [FormFieldsEnum.extraData]?: unknown;
}
interface IUpdateUserFormData extends Partial<IUser> {
    [FormFieldsEnum.extraData]?: unknown;
}
interface IAppUserRoleFormData {
    [FormFieldsEnum.title]: string;
    [FormFieldsEnum.description]: string;
    [FormFieldsEnum.roleIdentifier]: string;
    [FormFieldsEnum.isDefault]: BooleanEnum;
    [FormFieldsEnum.permissions]: PermissionEnum[];
    [FormFieldsEnum.extraData]?: unknown;
}
interface ICoinsUpdateFormData {
    [FormFieldsEnum.phoneNumber]: string;
    [FormFieldsEnum.amount]: number;
    [FormFieldsEnum.agentRemarks]?: string;
    [FormFieldsEnum.extraData]?: unknown;
}

interface IAppUserRole extends IAppUserRoleFormData, IDefaultDBColumns {
}

interface ICoinManagement extends Partial<IDefaultDBColumns> {
    [FormFieldsEnum.phoneNumber]?: string;
    [FormFieldsEnum.amount]?: number;
    [FormFieldsEnum.agentRemarks]?: string;
    [FormFieldsEnum.action]?: CoinManagementActionEnum;
}

interface IGame extends IGameFormData, Partial<IDefaultDBColumns> {
    [FormFieldsEnum.imageFile]?: File | null;
}

interface IInAppNotification extends IInAppNotificationFormData, IDefaultDBColumns {
    [FormFieldsEnum.searchText]?: string;
    [FormFieldsEnum.imageFile]?: File | null;
    [FormFieldsEnum.iconFile]?: File | null;
    [FormFieldsEnum.phoneNumber]?: string;
    [FormFieldsEnum.status]: InAppNotificationStatusEnum;
}

interface IGameRoom extends IGameRoomFormData, Partial<IDefaultDBColumns> {
    [FormFieldsEnum.status]?: GameRoomStatusEnum;
    [FormFieldsEnum.firstPlayerGameRoomJoinedAt]: string | number;
    [FormFieldsEnum.gameRoomWillStartAt]?: string | number;
    [FormFieldsEnum.playerJoinCutoffTime]?: string | number;
    [FormFieldsEnum.engagerStartedTheActualGameAt]?: string | number;
    [FormFieldsEnum.gameRoomPlayerIds]?: Array<string>;
    [FormFieldsEnum.gameRoomWinnerPlayerId]?: string;
    [FormFieldsEnum.gameRoomResultScreenShot]?: string;
    [FormFieldsEnum.gameRoomPlayersData]?: Array<Partial<IUser>>;
    [FormFieldsEnum.isActive]?: BooleanEnum;
    [FormFieldsEnum.gameData]?: Partial<IGame>;
    [FormFieldsEnum.engagerReleasedGameRoomAt]?: string | number;
    [FormFieldsEnum.engagerDeclaredGameRoomWinnerAt]?: string | number;
    [FormFieldsEnum.gameTitle]?: string;
}
interface IGameRoomSearchReqInputData {
    [FormFieldsEnum.queryKeyValue]: string;
    [FormFieldsEnum.queryKeyType]: QueryKeyTypeEnum;
}

interface ITopUp extends ITopupRequestFormData, IDefaultDBColumns {
    [FormFieldsEnum.status]?: TopupStatusEnum | null;
    [FormFieldsEnum.isActive]?: BooleanEnum;
    [FormFieldsEnum.receptScreenshotFile]?: File | null;
}
interface ITopupRequest extends ITopUp {
    [FormFieldsEnum.playerData]?: IUser;
}

interface ITransaction extends IDefaultDBColumns {
    [FormFieldsEnum.adminUserId]?: string;
    [FormFieldsEnum.itemId]: string;
    [FormFieldsEnum.balanceBefore]: number;
    [FormFieldsEnum.balanceAfter]: number;
    [FormFieldsEnum.type]: TransactionTypeEnum;
}

interface ITransferCoin extends ITransferCoinsRequestFormData, IDefaultDBColumns {
    [FormFieldsEnum.status]?: ProcessStatusEnum;
    [FormFieldsEnum.otherPlayerId]?: string;
    [FormFieldsEnum.otherPlayerData]?: Partial<IUser>;
    [FormFieldsEnum.otherPlayerPhoneNumber]: string;
    [FormFieldsEnum.otherPlayerName]?: string;
}

interface IUserDetail extends IDefaultDBColumns, IThirdPartyAppsData, ICommonUserPropsAuthAndDetailsCollection {
}

interface IWithdraw extends IWithdrawRequestFormData, IDefaultDBColumns {
    [FormFieldsEnum.isActive]?: BooleanEnum;
    [FormFieldsEnum.status]?: WithdrawRequestStatusEnum;
}
interface IWithdrawRequest extends IWithdraw {
    [FormFieldsEnum.playerId]?: string;
    [FormFieldsEnum.playerData]?: Partial<IUser>;
}

declare const coinManagementActionVal: readonly [
    CoinManagementActionEnum.add,
    CoinManagementActionEnum.remove
];

export { BalanceUpdateTypeEnum, CoinManagementActionEnum, GameRoomStatusEnum, GameTypeEnum, type IAppUserRole, type IAppUserRoleFormData, type ICoinManagement, type ICoinsUpdateFormData, type IGame, type IGameFormData, type IGameRoom, type IGameRoomFormData, type IGameRoomSearchReqInputData, type IInAppNotification, type IInAppNotificationFormData, type ILoginFormData, type IPlayerIdFormData, type IRegisterFormData, type IThirdPartyAppsData, type ITopUp, type ITopupRequest, type ITopupRequestFormData, type ITransaction, type ITransferCoin, type ITransferCoinsRequestFormData, type IUpdateUserFormData, type IUser, type IUserDetail, type IWithdraw, type IWithdrawRequest, type IWithdrawRequestFormData, InAppNotificationSendToEnum, InAppNotificationStatusEnum, TopupStatusEnum, TransactionTypeEnum, WithdrawRequestStatusEnum, appServiceFee, coinManagementActionVal, playAndWinAppTerms, playAndWinFieldsValidation, timeLimits, ztkPlayWinMessages };
