/** * Configuration for AvatarUploadComponent */ export interface AvatarUploadMetadata { /** Current avatar URL */ currentUrl?: string; /** Initials to show when no avatar (e.g., "JD" for John Doe) */ initials?: string; /** Background color for initials avatar */ backgroundColor?: string; /** Avatar size in pixels (default: 100) */ size?: number; /** Show edit button (default: true) */ editable?: boolean; /** Storage path prefix without userId (default: 'avatars') */ storagePath?: string; /** i18n namespace for labels (default: 'AvatarUpload') */ i18nNamespace?: string; /** Max file size in bytes (default: 10MB) */ maxFileSize?: number; /** Quality for compressed image 0-1 (default: 0.8) */ compressQuality?: number; /** Max width for avatar (default: 800) */ maxWidth?: number; /** Thumbnail size (default: 150) */ thumbnailSize?: number; /** Show "ver foto" button to open photo viewer modal (default: false) */ showViewButton?: boolean; } /** * Result emitted after successful upload */ export interface AvatarUploadResult { /** Full-size avatar URL */ avatarUrl: string; /** Thumbnail URL */ thumbnailUrl: string; } /** * Error types that can occur during upload */ export type AvatarUploadErrorType = 'invalidType' | 'fileTooLarge' | 'uploadFailed' | 'backendFailed' | 'cancelled'; /** * Error object emitted on failure */ export interface AvatarUploadError { type: AvatarUploadErrorType; message: string; originalError?: unknown; } /** * Default values */ export declare const AVATAR_UPLOAD_DEFAULTS: { size: number; editable: boolean; storagePath: string; i18nNamespace: string; maxFileSize: number; compressQuality: number; maxWidth: number; thumbnailSize: number; backgroundColor: string; showViewButton: boolean; };