import type { RawUserData } from '@explorins/pers-sdk/core';
import { AccountOwnerType } from '@explorins/pers-sdk/core';
import type { UserDTO, SessionAuthContextResponseDTO } from '@explorins/pers-sdk';
export type { RawUserData };
/**
 * React hook for authentication operations in the PERS SDK
 *
 * Provides methods for user login, logout, token management, and authentication state.
 * Automatically manages authentication state and user data synchronization.
 *
 * @returns Authentication hook with methods and state
 *
 * @example
 * ```typescript
 * function LoginComponent() {
 *   const { login, logout, isAuthenticated, user } = useAuth();
 *
 *   const handleLogin = async (token: string) => {
 *     try {
 *       await login(token, 'user');
 *       console.log('Login successful');
 *     } catch (error) {
 *       console.error('Login failed:', error);
 *     }
 *   };
 *
 *   return (
 *     <div>
 *       {isAuthenticated ? (
 *         <div>
 *           <p>Welcome, {user?.name}</p>
 *           <button onClick={logout}>Logout</button>
 *         </div>
 *       ) : (
 *         <button onClick={() => handleLogin('jwt-token')}>Login</button>
 *       )}
 *     </div>
 *   );
 * }
 * ```
 */
export declare const useAuth: () => {
    isInitialized: boolean;
    isAuthenticated: boolean;
    user: UserDTO | import("@explorins/pers-sdk").AdminDTO | null;
    login: (jwtToken: string, userType?: AccountOwnerType) => Promise<SessionAuthContextResponseDTO>;
    loginWithRawData: (rawUserData: RawUserData) => Promise<void>;
    logout: () => Promise<void>;
    refreshUserData: () => Promise<void>;
    getCurrentUser: () => Promise<UserDTO>;
    checkIsAuthenticated: () => Promise<boolean>;
    refreshTokens: (refreshToken?: string) => Promise<import("@explorins/pers-sdk").SessionAuthResponseDTO>;
    clearAuth: () => Promise<void>;
    hasValidAuth: () => Promise<boolean>;
};
export type AuthHook = ReturnType<typeof useAuth>;
//# sourceMappingURL=useAuth.d.ts.map