export declare const genders: readonly ["MEN", "WOMEN"];
export type Gender = (typeof genders)[number];
export interface UserEmailItem {
    email: string;
    verified: boolean;
    primary: boolean;
}
export interface UserPhoneItem {
    number: string;
    verified: boolean;
    primary: boolean;
}
export interface UserAuthProfiles {
    facebook_id?: string | null;
    google_id?: string | null;
    steam_id?: string | null;
    apple_id?: string | null;
    twitter_id?: string | null;
    monpay_id?: string | null;
    toki_id?: string | null;
    social_id?: string | null;
    hipay_id?: string | null;
    digi_id?: string | null;
}
export interface UserPreferences {
    language: string;
    notifications: boolean;
}
export interface UserStatus {
    is_active: boolean;
    is_banned: boolean;
    verified: boolean;
}
export interface UserSecurity {
    password_hash: string;
    two_factor_enabled: boolean;
    last_password_change: Date | null;
}
export interface UserVerifyInfo {
    first_name: string;
    last_name: string;
    born_date: Date | null;
    national_id: string;
}
export interface UserAppItem {
    app_name: string;
    app_id: string;
    device_id: string;
}
export interface UserWalletItem {
    key_id: string;
    wallet_id: string;
    wallet_key: string;
    wallet_type: string;
    wallet_name: string;
    role: string[];
}
type UserT = {
    user_id: number;
    user_name: string;
    nick_name: string;
    exp: number;
    primary_email?: string | null;
    primary_phone?: string | null;
    emails: UserEmailItem[];
    phone_numbers: UserPhoneItem[];
    auth_profiles: UserAuthProfiles;
    profile_image_url: string;
    date_of_birth: Date | null;
    gender?: Gender;
    sign_up_date: Date | null;
    last_login: Date | null;
    wallets: UserWalletItem[];
    preferences: UserPreferences;
    status: UserStatus;
    security: UserSecurity;
    verify_info: UserVerifyInfo;
    dynamic_info: Record<string, any>;
    apps: UserAppItem[];
    search_string?: string;
    delFlg?: boolean;
    order_index?: number;
};
type MerchantT = {
    _id?: string;
    user_id: number;
    user_name?: string;
    phone_number?: string;
    user_role?: "merchant" | "sub-merchant";
    avatar?: string;
    authority?: string[];
    user_email?: string;
    password?: string;
    show_router?: string[];
    show_id?: string[];
    merchant: {
        toki_id: string;
        hipay: string;
    };
    wallet_id?: string;
    wallet_key?: string;
    delFlg?: boolean;
    createdAt?: Date;
    updatedAt?: Date;
};
type AdminT = {
    _id?: string;
    user_id?: number;
    user_name?: string;
    phone_number?: number;
    user_role?: "admin" | "sub-admin" | "super-admin";
    avatar?: string;
    authority?: string[];
    user_email?: string;
    password?: string;
    show_router?: string[];
    show_id?: string[];
    delFlg?: boolean;
    createdAt?: Date;
    updatedAt?: Date;
};
type ClientT = {
    _id?: string;
    user_id?: number;
    user_name?: string;
    phone_number?: number;
    user_role?: "crm" | "sub-crm";
    avatar?: string;
    authority?: string[];
    user_email?: string;
    password?: string;
    show_router?: string[];
    show_id?: string[];
    RefundFun?: boolean;
    delFlg?: boolean;
    createdAt?: Date;
    updatedAt?: Date;
};
type CrmT = {
    _id?: string;
    user_id?: number;
    user_name?: string;
    phone_number?: number;
    user_role?: "crm" | "sub-crm";
    avatar?: string;
    authority?: string[];
    user_email?: string;
    password?: string;
    show_router?: string[];
    show_id?: string[];
    RefundFun?: boolean;
    delFlg?: boolean;
    createdAt?: Date;
    updatedAt?: Date;
};
export declare const USER: (body: UserT) => Promise<{
    success: boolean;
    data: UserT[];
    message: string;
}>;
export declare const MERCHANT: (body: MerchantT) => Promise<{
    success: boolean;
    data: MerchantT[];
    message: string;
}>;
export declare const ADMIN: (body: AdminT) => Promise<{
    success: boolean;
    data: AdminT[];
    message: string;
}>;
export declare const CLIENT: (body: ClientT) => Promise<{
    success: boolean;
    data: ClientT[];
    message: string;
}>;
export declare const CRM: (body: CrmT) => Promise<{
    success: boolean;
    data: CrmT[];
    message: string;
}>;
declare const _default: {
    USER: (body: UserT) => Promise<{
        success: boolean;
        data: UserT[];
        message: string;
    }>;
    MERCHANT: (body: MerchantT) => Promise<{
        success: boolean;
        data: MerchantT[];
        message: string;
    }>;
    ADMIN: (body: AdminT) => Promise<{
        success: boolean;
        data: AdminT[];
        message: string;
    }>;
    CLIENT: (body: ClientT) => Promise<{
        success: boolean;
        data: ClientT[];
        message: string;
    }>;
    CRM: (body: CrmT) => Promise<{
        success: boolean;
        data: CrmT[];
        message: string;
    }>;
};
export default _default;
