import { JWTClaims } from './types';
import * as i0 from "@angular/core";
/**
 * Servicio para manejo de tokens JWT.
 * Parseo y validación de tokens sin dependencias externas.
 */
export declare class TokenService {
    /**
     * Parsea un token JWT y extrae los claims.
     * @param token - Token JWT
     * @returns Claims del token o null si es inválido
     */
    parseToken(token: string): JWTClaims | null;
    /**
     * Verifica si un token es válido (no expirado).
     * @param token - Token JWT
     * @returns true si el token es válido
     */
    isTokenValid(token: string): boolean;
    /**
     * Obtiene el tiempo restante del token en segundos.
     * @param token - Token JWT
     * @returns Segundos restantes o 0 si expirado
     */
    getTimeToExpiry(token: string): number;
    /**
     * Obtiene el timestamp de expiración del token.
     * @param token - Token JWT
     * @returns Timestamp en milisegundos o null
     */
    getExpirationTime(token: string): number | null;
    /**
     * Extrae el user ID del token.
     * @param token - Token JWT
     * @returns User ID o null
     */
    getUserId(token: string): string | null;
    /**
     * Extrae el email del token.
     * @param token - Token JWT
     * @returns Email o null
     */
    getEmail(token: string): string | null;
    /**
     * Extrae el estado premium del token.
     * @param token - Token JWT
     * @returns true si el usuario es premium
     */
    isPremium(token: string): boolean;
    /**
     * Decodifica base64url a string.
     * Base64url usa - y _ en lugar de + y /
     */
    private base64UrlDecode;
    static ɵfac: i0.ɵɵFactoryDeclaration<TokenService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TokenService>;
}
