import type { EntityActionResult, EntityActionVoidResult } from './types'; /** * Profile update data that can be passed to updateProfile */ export interface UpdateProfileData { firstName?: string; lastName?: string; name?: string; country?: string; timezone?: string; language?: string; } /** * Result of profile update with user data */ export interface ProfileUpdateResult { id: string; email: string; name?: string; firstName?: string; lastName?: string; image?: string; country?: string; timezone?: string; language?: string; } /** * Update the current user's profile information * * Auth is automatically obtained from session - users can only update their own profile. * * @param data - Profile fields to update * @returns Updated user data wrapped in EntityActionResult * * @example * ```typescript * const result = await updateProfile({ * firstName: 'John', * lastName: 'Doe', * timezone: 'America/New_York' * }) * * if (result.success) { * console.log('Profile updated:', result.data) * } else { * console.error('Error:', result.error) * } * ``` */ export declare function updateProfile(data: UpdateProfileData): Promise>; /** * Update the current user's avatar image * * Accepts FormData with an 'avatar' or 'image' field containing the image URL or file path. * For actual file uploads, the file should be uploaded to storage first and the URL passed here. * * @param formData - FormData with 'avatar' or 'image' field containing the image URL * @returns Updated user data wrapped in EntityActionResult * * @example * ```typescript * // After uploading file to storage * const formData = new FormData() * formData.append('avatar', imageUrl) * const result = await updateAvatar(formData) * * if (result.success) { * console.log('Avatar updated:', result.data.image) * } * ``` */ export declare function updateAvatar(formData: FormData): Promise>; /** * Delete the current user's account * * This is a destructive operation that: * - Removes the user from all teams * - Deletes user metadata * - Deletes the user account * * Teams owned by the user must have ownership transferred first or be deleted. * * @returns Success status * * @example * ```typescript * // Show confirmation dialog first! * const confirmed = window.confirm('Are you sure? This cannot be undone.') * if (confirmed) { * const result = await deleteAccount() * if (result.success) { * // Redirect to goodbye page or login * router.push('/goodbye') * } * } * ``` */ export declare function deleteAccount(): Promise; //# sourceMappingURL=user.actions.d.ts.map