import { OnInit, OnDestroy } from '@angular/core'; import { UsernameInputMetadata, UsernameAvailabilityStatus } from './types'; import * as i0 from "@angular/core"; /** * Username Input Component * * Input especializado para usernames/handles con: * - Prefijo '@' visual * - Validación de formato (alfanuméricos y _) * - Normalización automática (lowercase, sin espacios) * - Verificación de disponibilidad con debounce * - Estados visuales: available, taken, checking * * @example * */ export declare class UsernameInputComponent implements OnInit, OnDestroy { props: UsernameInputMetadata; /** * AuthService optional — si está inyectado y `props.checkAvailability` no se provee, * el component cae automáticamente a `AuthService.checkHandleAvailability` (backend * de Valtech). Consumers que quieran otro endpoint pasan su propio callback. */ private authService; private destroy$; private checkAvailability$; isFocused: import("@angular/core").WritableSignal; availabilityStatus: import("@angular/core").WritableSignal; hasError: import("@angular/core").Signal; showStatusMessage: import("@angular/core").Signal; statusColor: import("@angular/core").Signal<"success" | "danger">; statusMessage: import("@angular/core").Signal<"" | "Username disponible" | "Username ya está en uso">; errorMessage: import("@angular/core").Signal; ngOnInit(): void; ngOnDestroy(): void; onFocus(): void; onBlur(): void; onInput(event: CustomEvent): void; /** * Resolve la fn de check de disponibilidad: * 1. Si el caller pasa `props.checkAvailability` → usar esa * 2. Si AuthService está inyectado → caer a `checkHandleAvailability` (backend Valtech) * 3. Sino → undefined (no se muestra status indicator) */ private resolveCheckFn; private setupAvailabilityCheck; private normalizeUsername; private isValidFormat; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }