import type { OxyServices } from '../../core';
import type { User } from '../../models/interfaces';
import { QueryClient } from '@tanstack/react-query';
/**
 * Updates file visibility to public for avatar use.
 * Handles errors gracefully, only logging non-404 errors.
 *
 * @param fileId - The file ID to update visibility for
 * @param oxyServices - OxyServices instance
 * @param contextName - Optional context name for logging
 * @returns Promise that resolves when visibility is updated (or skipped)
 */
export declare function updateAvatarVisibility(fileId: string | undefined, oxyServices: OxyServices, contextName?: string): Promise<void>;
/**
 * Refreshes avatar in accountStore with cache-busted URL to force image reload.
 *
 * @param sessionId - The session ID for the account to update
 * @param avatarFileId - The new avatar file ID
 * @param oxyServices - OxyServices instance to generate download URL
 */
export declare function refreshAvatarInStore(sessionId: string, avatarFileId: string, oxyServices: OxyServices): void;
/**
 * Updates user profile with avatar and handles all side effects (query invalidation, accountStore update).
 * This function can be used from within OxyContext provider without requiring useOxy hook.
 *
 * @param updates - Profile updates including avatar
 * @param oxyServices - OxyServices instance
 * @param activeSessionId - Active session ID
 * @param queryClient - TanStack Query client
 * @param syncIdentity - Optional sync identity function for handling auth errors
 * @returns Promise that resolves with updated user data
 */
export declare function updateProfileWithAvatar(updates: Partial<User>, oxyServices: OxyServices, activeSessionId: string | null, queryClient: QueryClient, syncIdentity?: () => Promise<User>): Promise<User>;
//# sourceMappingURL=avatarUtils.d.ts.map