import { default as React } from 'react'; export interface LoginFormValues { email: string; password: string; } export interface resetFormValues { email: string; } export interface resetPasswordValues { token: string; } export interface changePasswordValues { password: string; } export interface changeUserPasswordValues { password: string; } interface ERPApiUser { id: string | number; first_name: string; last_name: string; middle_name: string; country_code: string; email: string; created_by: any; updated_by: any; created_at: string; updated_at: string; role_id: string; department_id: number; is_deleted: number; deleted_at: string | null; deleted_by: any; token: string; profile_image: string; company_id: number | string; currency_data?: { id: number; symbol: string; currency_name: string; number_format: string; position: string | null; fraction_unit: string | null; accounting_fraction_unit?: string | null; }; accessCompanies?: any[]; } interface ERPUser extends Omit { full_name: string; } export type User = ERPUser; export type AuthContextType = DefaultProviderProps; export interface DefaultProviderProps { user: ERPUser | null; loading: boolean; authToken: string; setUser: React.Dispatch>; setLoading: React.Dispatch>; login: (params: LoginFormValues, callback: (err: string) => void) => Promise; logout: () => Promise; forgotPassword: (params: resetFormValues, callback: (err: string) => void) => Promise; resetPassword: (params: resetPasswordValues, callback: (err: string) => void) => Promise; changePassword: (params: changePasswordValues, callback: (err: string) => void) => Promise; changeUserPassword: (params: changeUserPasswordValues, callback: (err: string) => void) => Promise; } declare const AuthContext: React.Context; interface AuthProviderProps { children: React.ReactNode; publicRoutes?: string[]; } declare const AuthProvider: React.FC; export declare const useAuth: () => DefaultProviderProps; export { AuthContext, AuthProvider };