import { type UserDetailDto, type RoleListDto, type UserSessionsDto, type UserActivityDto, type UserHistoryDto, type OrganizationReferencesDto, type UserTenantDto, type TenantListDto } from '@/services/api/adminApi';
export interface UseUserDetailOptions {
    userId: string | undefined;
    tenantSlug?: string | null;
}
export interface UserFormData {
    firstName: string;
    lastName: string;
    email: string;
    roleIds: string[];
}
export interface UseUserDetailReturn {
    user: UserDetailDto | null;
    formData: UserFormData;
    setFormData: React.Dispatch<React.SetStateAction<UserFormData>>;
    isCreateMode: boolean;
    loading: boolean;
    error: string | null;
    success: string | null;
    setError: (error: string | null) => void;
    setSuccess: (success: string | null) => void;
    roles: RoleListDto[] | null;
    rolesLoading: boolean;
    sessions: UserSessionsDto | null;
    activity: UserActivityDto | null;
    history: UserHistoryDto[] | null;
    orgReferences: OrganizationReferencesDto | null;
    userTenants: UserTenantDto[] | null;
    allTenants: TenantListDto[] | null;
    loadUser: (silent?: boolean) => Promise<void>;
    loadRoles: () => Promise<void>;
    loadOrgReferences: () => Promise<void>;
    loadSessions: () => Promise<void>;
    loadActivity: () => Promise<void>;
    loadHistory: () => Promise<void>;
    loadTenants: () => Promise<void>;
    loadAllTenants: () => Promise<void>;
    setHistory: React.Dispatch<React.SetStateAction<UserHistoryDto[] | null>>;
    setUserTenants: React.Dispatch<React.SetStateAction<UserTenantDto[] | null>>;
    handleSaveInfo: (e: React.FormEvent) => Promise<void>;
    saving: boolean;
}
export declare function useUserDetail({ userId, tenantSlug }: UseUserDetailOptions): UseUserDetailReturn;
//# sourceMappingURL=useUserDetail.d.ts.map