import { AnyAction, ThunkDispatch } from '@reduxjs/toolkit';
import { AppState } from '../../app';
import { Auth, Customer, CustomerCreate, LoginData, RequestError, RequestStatus } from '@open-tender/types';
export interface AccountState {
    auth: Auth | null;
    profile: Customer | null;
    loading: RequestStatus;
    error: any;
}
export declare enum AccountActionType {
    LoginCustomer = "customer/loginCustomer",
    LogoutCustomer = "customer/logoutCustomer",
    FetchCustomer = "customer/fetchCustomer",
    UpdateCustomer = "customer/updateCustomer",
    VerifyCustomer = "customer/verifyCustomer",
    LinkPosToken = "customer/linkPosToken",
    DeleteCustomer = "customer/deleteCustomer",
    LoginCustomerThanx = "customer/loginCustomerThanx",
    AuthCustomerThanx = "customer/authCustomerThanx"
}
export declare const checkAuth: (err: RequestError, dispatch: ThunkDispatch<AppState, unknown, AnyAction>, rejectWithValue: () => any) => Promise<any>;
export declare const fetchCustomer: import("@reduxjs/toolkit").AsyncThunk<Customer, void, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const loginCustomer: import("@reduxjs/toolkit").AsyncThunk<void, LoginData, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const logoutCustomer: import("@reduxjs/toolkit").AsyncThunk<null, boolean | undefined, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const linkPosToken: import("@reduxjs/toolkit").AsyncThunk<void, string, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const updateCustomer: import("@reduxjs/toolkit").AsyncThunk<Customer, {
    data: CustomerCreate;
    callback?: ((data: CustomerCreate) => void) | undefined;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const sendCustomerVerificationEmail: import("@reduxjs/toolkit").AsyncThunk<void, string, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const loginCustomerThanx: import("@reduxjs/toolkit").AsyncThunk<void, {
    email: string;
    origin?: string | undefined;
    recaptcha_token?: string | undefined;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const authCustomerThanx: import("@reduxjs/toolkit").AsyncThunk<void, {
    code: any;
    path: string | null;
    origin: string | null;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const deleteCustomer: import("@reduxjs/toolkit").AsyncThunk<void, {
    data?: CustomerCreate | undefined;
    callback?: ((data?: CustomerCreate) => void) | undefined;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const resetCustomer: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"account/resetCustomer">, resetLoginError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"account/resetLoginError">, setCustomerAuth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "account/setCustomerAuth">;
export declare const selectToken: (state: AppState) => string | null;
export declare const selectCustomer: (state: AppState) => AccountState;
export declare const accountReducer: import("redux").Reducer<AccountState, AnyAction>;
