import { AuthState, AuthUser, AuthError, MFAPendingState, StoredAuthState } from './types'; import * as i0 from "@angular/core"; /** * Servicio para manejo de estado de autenticación con Angular Signals. * Proporciona estado reactivo inmutable. */ export declare class AuthStateService { private _state; private _mfaPending; /** Estado completo de autenticación */ readonly state: import("@angular/core").Signal; /** Estado de MFA pendiente */ readonly mfaPending: import("@angular/core").Signal; /** Usuario está autenticado */ readonly isAuthenticated: import("@angular/core").Signal; /** Estado de carga */ readonly isLoading: import("@angular/core").Signal; /** Token de acceso */ readonly accessToken: import("@angular/core").Signal; /** Roles del usuario */ readonly roles: import("@angular/core").Signal; /** Permisos del usuario */ readonly permissions: import("@angular/core").Signal; /** Usuario es super admin */ readonly isSuperAdmin: import("@angular/core").Signal; /** Usuario tiene suscripción premium activa (no ve ads) */ readonly isPremium: import("@angular/core").Signal; /** Error actual */ readonly error: import("@angular/core").Signal; /** Información del usuario */ readonly user: import("@angular/core").Signal; /** * Establece el estado de carga. */ setLoading(isLoading: boolean): void; /** * Establece el estado de autenticación exitosa. */ setAuthenticated(data: { accessToken: string; refreshToken: string; userId?: string; email?: string; roles: string[]; permissions: string[]; isSuperAdmin: boolean; isPremium?: boolean; expiresAt: number; }): void; /** * Actualiza solo el access token (después de refresh). */ updateAccessToken(accessToken: string, expiresIn: number): void; /** * Actualiza el refresh token (token rotation). */ updateRefreshToken(refreshToken: string): void; /** * Actualiza los permisos. */ updatePermissions(roles: string[], permissions: string[], isSuperAdmin: boolean): void; /** * Establece un error de autenticación. */ setError(error: AuthError): void; /** * Limpia el error. */ clearError(): void; /** * Establece estado de MFA pendiente. */ setMFAPending(mfaState: MFAPendingState): void; /** * Limpia el estado de MFA pendiente. */ clearMFAPending(): void; /** * Resetea todo el estado a valores iniciales. */ reset(): void; /** * Restaura estado desde datos almacenados. */ restoreFromStorage(stored: Partial): void; /** * Actualiza el userId y email (después de parsear el token). */ updateUserInfo(userId: string, email: string): void; /** * Actualiza la organización activa del usuario. * Invocado tras parsear el JWT (claim "org") o tras switchOrg exitoso. */ updateActiveOrg(activeOrg: string | null): void; /** * Hidrata el state con campos del profile (nombre, handle, avatar, phone). * Invocado tras `getProfile()` o `updateProfile()` para que consumers de * `auth.user()` vean los campos enriched automáticamente. * * Cualquier campo `undefined` se ignora (no sobrescribe con null). Campos * `null` explícitos se persisten (signal de "limpiado"). */ updateProfileFields(fields: { name?: string | null; handle?: string | null; avatarUrl?: string | null; phone?: string | null; }): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }