/// <reference types="react" />
import { AuthUser, GetUserProps } from '../features/auth';
import { AuthContextValue, AuthProviderConfig, AuthProviderProps } from '../providers/AuthProvider';
declare function loadUser<User extends AuthUser | null | undefined = AuthUser>(props?: GetUserProps): Promise<User | null>;
declare function loginFn<User extends AuthUser | null | undefined = AuthUser>(props?: GetUserProps): Promise<User | null>;
declare function login2faFn<User extends AuthUser | null | undefined = AuthUser>(props?: GetUserProps): Promise<User | null>;
declare function registerFn<User extends AuthUser | null | undefined = AuthUser>(props?: GetUserProps): Promise<User | null>;
declare function logoutFn<User extends AuthUser | null | undefined = AuthUser>(props?: GetUserProps): Promise<void>;
export declare const defaultAuthConfig: {
    loadUser: typeof loadUser;
    loginFn: typeof loginFn;
    login2faFn: typeof login2faFn;
    registerFn: typeof registerFn;
    logoutFn: typeof logoutFn;
    LoaderComponent(): JSX.Element;
};
export declare type InitializeAuthProps<User extends AuthUser | null = AuthUser, Error = unknown> = {
    authConfig: AuthProviderConfig<User | null, Error>;
};
export declare const initializeAuth: <User extends AuthUser | null = AuthUser, Error_1 = unknown, LoginCredentials = unknown, Login2faCredentials = unknown, RegisterCredentials = unknown>({ authConfig, }: InitializeAuthProps<User, Error_1>) => {
    AuthProvider: ({ children }: AuthProviderProps) => JSX.Element;
    useAuth: () => AuthContextValue<any | null, any, any, any, any>;
};
export declare type UseAuthType<User extends AuthUser | null = AuthUser, Error = unknown, LoginCredentials = unknown, Login2faCredentials = unknown, RegisterCredentials = unknown> = (...args: any) => Promise<AuthContextValue<User, Error, LoginCredentials, Login2faCredentials, RegisterCredentials>>;
export declare let AuthProvider: ({ children }: AuthProviderProps) => JSX.Element, useAuth: () => AuthContextValue<any | null, any, any, any, any>;
export {};
//# sourceMappingURL=auth.d.ts.map