import { IUser, IUserToken } from '@shared/interfaces/model'; import React from 'react'; import { UseAsyncReturn } from 'react-async-hook'; export declare type AuthStatuses = 'authenticated' | 'needs-init' | 'unauthenticated'; interface AuthContextInterface { user: IUser; logIn: UseAsyncReturn<{ user: IUser; token: IUserToken; }, [ { email: string; password: string; } ]>; logOut: UseAsyncReturn; forgot: UseAsyncReturn; forgotVerify: UseAsyncReturn; init: UseAsyncReturn; updatePassword: UseAsyncReturn; filterPermissions: (list: any[]) => any[]; hasPermission: (list?: string[]) => boolean; loading: boolean; authStatus: AuthStatuses; setAuthStatus: (status: AuthStatuses) => void; } declare const AuthContext: React.Context; declare const AuthContextProvider: ({ children }: { children: any; }) => JSX.Element; declare const useAuth: () => AuthContextInterface; export { AuthContext, AuthContextProvider, useAuth };