import React from 'react'; export declare type IUserImp = { current(): Promise; logout(): Promise; login(username: string, password: string): Promise; hasPermission(user: T | null, permission: string): boolean; }; declare type IUserContext = { user: T; isLogged: boolean; isChecking: boolean; redirectUrl: string; updateUser(nextUser: T): void; setRedirectUrl(nextUrl: string): void; hasPermission(permission: string): boolean; } & Omit, 'hasPermission'>; export declare const UserContext: React.Context>; export declare function useUser(): IUserContext; declare type UserProviderProps = Omit, 'value'> & { userImp: IUserImp; }; export declare function UserProvider({ userImp, ...rest }: UserProviderProps): JSX.Element; export {};