import { Observable } from 'rxjs';
import { DtaVisionAuthenticationTokenApi } from '../https/dta-vision-authentication-token.api';
import { AuthenticationDtaModel, AuthenticationDtaResponseModel } from '../../shared/models/authentication-dta.model';
import * as i0 from "@angular/core";
export declare class DtaVisionAuthenticationTokenService {
    private readonly dtaVisionAuthenticationTokenApi;
    private readonly storageKey;
    private readonly authModelStorageKey;
    private readonly expWarningSeconds;
    constructor(dtaVisionAuthenticationTokenApi: DtaVisionAuthenticationTokenApi);
    /**
     * Gera o token e armazena no sessionStorage
     */
    generateAndStoreToken(authenticationDtaModel: AuthenticationDtaModel): Observable<AuthenticationDtaResponseModel>;
    /**
     * Faz refresh do token atual e armazena no sessionStorage
     */
    refreshToken(tokenJwt: string): Observable<AuthenticationDtaResponseModel>;
    /**
     * Verifica se o token armazenado é válido (não expirado)
     */
    isTokenValid(): boolean;
    /**
     * Obtém o token JWT salvo no sessionStorage
     */
    getToken(): string | null;
    /**
     * Salva o model de autenticação no sessionStorage (como JSON)
     */
    setAuthModelToStorage(): void;
    /**
     * Recupera o model de autenticação salvo no sessionStorage
     */
    getAuthModelFromStorage(): AuthenticationDtaModel | null;
    /**
     * Garante um token válido: se expirado, faz novo login,
     * se perto de expirar, faz refresh, senão retorna o atual
     */
    getTokenValidOrRefresh(): Observable<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DtaVisionAuthenticationTokenService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DtaVisionAuthenticationTokenService>;
}
