import { type ReactNode } from 'react';
import type { UserTenantDto } from '@/services/api/adminApi';
export interface User {
    id: string;
    email: string;
    firstName: string | null;
    lastName: string | null;
    roles: string[];
    permissions: string[];
    tenants: UserTenantDto[];
}
interface AuthContextType {
    user: User | null;
    isAuthenticated: boolean;
    isLoading: boolean;
    login: (token: string, user: User) => void;
    logout: () => Promise<void>;
    hasPermission: (permission: string) => boolean;
    refreshPermissions: () => Promise<void>;
}
export declare function AuthProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function useAuth(): AuthContextType;
/**
 * Safe version of useAuth that returns null instead of throwing
 * when used outside AuthProvider (e.g., during error boundary recovery).
 */
export declare function useAuthSafe(): AuthContextType | null;
export {};
//# sourceMappingURL=AuthContext.d.ts.map