import { BehaviorSubject, Observable } from 'rxjs'; import { HttpBackend } from '@angular/common/http'; import { IRoleActive } from '../public-api'; import { IAuthConfig } from '../interfaces/auth-config.interface'; import * as i0 from "@angular/core"; export declare class AuthService { private authConfig; private readonly TOKEN_KEY; private readonly REFRESH_TOKEN_KEY; private readonly ROLE_ACTIVE_KEY; private tokenSubject; /** Indica si hay un refresh en curso para serializar peticiones concurrentes */ isRefreshing: boolean; /** Emite el nuevo token cuando el refresh finaliza; null mientras está en curso */ refreshTokenSubject: BehaviorSubject; private http; constructor(handler: HttpBackend, authConfig: IAuthConfig | null); setToken(token: string): void; getToken(): string | null; clearToken(): void; getTokenObservable(): Observable; isLoggedIn(): boolean; /** * Parsea el JWT y comprueba si el claim `exp` ya venció. * Retorna true si no hay token, si no es un JWT válido o si expiró. */ isTokenExpired(): boolean; setRefreshToken(token: string): void; getRefreshToken(): string | null; clearRefreshToken(): void; /** * Llama al endpoint configurado en `AUTH_CONFIG.refresh_url` usando * HttpBackend (sin pasar por AuthInterceptor) y actualiza el token almacenado. */ refreshAccessToken(): Observable; removeActiveRole(): void; setActiveRole(roleCode: IRoleActive): void; getActiveRole(): IRoleActive | null; getSubDomain(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }