import { Dispatch, SetStateAction } from "react";
import { IGeoCoordinates } from "./interface";
import { Gift } from "./promotion";
export interface SignUpInterface {
    firstName: string;
    lastName: string;
    userType: number;
    dateOfBirth: string;
    country: number;
    state?: number;
    gender: string | number;
    email: string;
    mobileNumber: string;
    password: string;
    currency: string;
    isMobileConfirmed?: boolean;
    mobileAuthenticationCode: string;
    emailAuthenticationCode: string;
    installationID: string;
    deviceVerificationStatus: string;
    securityCode: number;
    referralCode: string;
    referralCodeType: string;
    geoCoordinates?: IGeoCoordinates | null;
    mobileNumberCountry: string;
    preferredLanguageCode: string;
    giftData?: Gift;
}
export interface LoginRequestInterface {
    email: string;
    password: string;
    installationId: string;
    geoCoordinates?: IGeoCoordinates | null;
}
export interface LoginDeviceCredentialInterface {
    user_id: string;
    device_security_code: string;
    device_id: string;
    geoCoordinates?: IGeoCoordinates | null;
}
export interface SignUpWithGoogleInterface {
    firstName: string;
    lastName: string;
    userType: number;
    dateOfBirth: string;
    country: number;
    state?: number;
    gender: number | string;
    email: string;
    mobileNumber: string;
    password: string;
    currency: string;
    loginId: string;
    token: string;
    isMobileConfirmed?: boolean;
    mobileAuthenticationCode: string;
    picture: string;
    installationID: string;
    deviceVerificationStatus: string;
    securityCode: number;
    referralCode: string;
    referralCodeType: string;
    geoCoordinates?: IGeoCoordinates | null;
    mobileNumberCountry: string;
    preferredLanguageCode: string;
    giftData?: Gift;
}
export interface LoginWithGoogleInterface {
    token: string;
    token_id?: string;
    installationId: string;
    geoCoordinates?: IGeoCoordinates | null;
}
export interface FormFieldInterface {
    name?: any;
    label?: any;
    rules?: any;
    type?: any;
    inputType?: any;
    options?: any;
    placeholder?: any;
    regx?: any;
    msg?: any;
}
export interface SignUpFormInterface {
    handelSubmit?: any;
    loading?: boolean;
}
export type SignUpType = {
    setIsEmailConfirmed: Dispatch<SetStateAction<any>>;
    setIsMobileConfirmed: Dispatch<SetStateAction<any>>;
    isEmailConfirmed: any;
    isMobileConfirmed: any;
};
export interface LimitedTokenInterface {
    installationId: string;
    geoCoordinates?: IGeoCoordinates | null;
}
export interface CustomField {
    promotion_data?: PromotionData;
    user_access_control?: IUserAccessControl;
}
export interface PromotionData {
    referral_data?: ReferralData;
    gift_data?: Gift[];
}
export interface ReferralData {
    code: string;
    type: number;
}
interface IPage {
    name: string;
    is_allowed: number;
    section: ISection[];
}
interface ISection {
    name: string;
    is_allowed: number;
    action: IAction[];
}
interface IAction {
    name: string;
    is_allowed: number;
}
export interface IUserAccessControl {
    page: IPage[];
}
export {};
