export declare enum EAuthStep {
    input = "input",
    confirm = "confirm",
    confirmed = "confirmed"
}
export declare enum EAuthEmailType {
    link = "link",
    code = "code",
    apple = "apple",
    google = "google",
    tg = "tg"
}
export interface IAuthUser {
    id: string | number;
    email: string;
    emailVerifiedAt?: string | null;
    [key: string]: unknown;
}
export interface IAuthSendEmailResponse {
    status: boolean;
}
export interface IAuthVerifyCodeResponse {
    status: 'success' | 'fail';
    user?: IAuthUser;
}
export interface IAuthLogoutResponse {
    status: boolean;
    message?: string;
}
export interface IAuthApiMethods {
    sendEmail?: (email: string) => Promise<IAuthSendEmailResponse>;
    verifyCode?: (formData: {
        code: string;
        email: string;
    }) => Promise<IAuthVerifyCodeResponse>;
    logoutUser?: () => Promise<IAuthLogoutResponse>;
}
export interface IAuthModuleProps {
    authToken?: string;
    apiMethods?: IAuthApiMethods;
    initialEmail?: string;
    emailVerifiedAt?: string | null;
    cardPadding?: string;
    cardBorderRadius?: string;
    isCardBoxShadow?: boolean;
    isCardBorder?: boolean;
    translates?: IAuthTexts | null;
}
export interface IAuthCheckCodeFormProps {
    apiMethods?: IAuthApiMethods;
}
export interface IAuthorizationConfirmed {
    apiMethods?: IAuthApiMethods;
}
export interface IAuthTexts {
    title: string;
    input: {
        description: string;
        label: string;
        btn: string;
        divider: string;
        error: string;
    };
    confirm: {
        link: {
            label: string;
            btnToMail: string;
        };
        code: {
            description: string;
            text: string;
            error: string;
            btn: {
                ok: string;
                cancel: string;
            };
        };
    };
}
