/**
 * 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;
};
