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[];
}
export interface NavigationContext {
    code: string;
    label: string;
    icon: string;
    route: string;
    color: string;
}
interface AuthContextType {
    user: User | null;
    isAuthenticated: boolean;
    isLoading: boolean;
    availableContexts: NavigationContext[];
    currentContext: string | null;
    login: (token: string, user: User) => void;
    logout: () => Promise<void>;
    setCurrentContext: (context: string | null) => 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;
export {};
//# sourceMappingURL=AuthContext.d.ts.map