import { ElementRef, EventEmitter } from '@angular/core'; import { AvatarUploadError, AvatarUploadMetadata, AvatarUploadResult } from './types'; import * as i0 from "@angular/core"; /** * AvatarUploadComponent * * A complete avatar upload solution with: * - Image selection from device * - Crop modal with round preview * - Automatic compression and thumbnail generation * - Upload to Firebase Storage * - Backend sync via AuthService * * @example Basic usage * ```html * * ``` */ export declare class AvatarUploadComponent { private imageService; private storageService; private authService; private i18n; fileInput: ElementRef; /** Component configuration */ readonly props: import("@angular/core").InputSignal; /** Emitted after successful upload and backend sync */ uploaded: EventEmitter; /** Emitted on any error during the process */ error: EventEmitter; /** Emitted when upload starts */ uploadStart: EventEmitter; protected loading: import("@angular/core").WritableSignal; protected showCropModal: import("@angular/core").WritableSignal; protected showViewModal: import("@angular/core").WritableSignal; protected selectedFile: import("@angular/core").WritableSignal; protected previewUrl: import("@angular/core").WritableSignal; protected imageLoadError: import("@angular/core").WritableSignal; /** Merged config with defaults */ protected config: import("@angular/core").Signal<{ currentUrl?: string; initials?: string; backgroundColor: string; size: number; editable: boolean; storagePath: string; i18nNamespace: string; maxFileSize: number; compressQuality: number; maxWidth: number; thumbnailSize: number; showViewButton: boolean; }>; /** URL to display (preview takes priority over current) */ protected displayUrl: import("@angular/core").Signal; /** Aria label for edit button */ protected editButtonLabel: import("@angular/core").Signal; /** Label for view photo button */ protected viewPhotoLabel: import("@angular/core").Signal; /** Label for close button inside photo viewer */ protected closePhotoLabel: import("@angular/core").Signal; /** Open file picker dialog */ openFilePicker(): void; /** Handle file selection */ onFileSelected(event: Event): void; /** Handle crop completion */ onCropComplete(croppedBlob: Blob): Promise; /** Handle crop cancel */ onCropCancel(): void; /** Handle crop load failure */ onCropLoadFailed(): void; /** Handle image load error */ onImageError(): void; /** Timeout for upload operations (30 seconds) */ private static readonly UPLOAD_TIMEOUT_MS; /** Process cropped image and upload */ private processAndUpload; /** Emit error event */ private emitError; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }