import { ConstructorInterface, ITokenApp } from "../interface"; export declare class TokenService { private readonly params; private readonly ambientes; private readonly hostname; private readonly httpRequest; /** Cache do token (como veio da API, mas com expires_at garantido) */ private tokenCache?; /** Epoch ms em que o token expira (normalizado) */ private tokenExpiresAtMs?; /** Promise em voo para evitar chamadas concorrentes gerarem múltiplos tokens */ private refreshPromise?; private readonly ENDPOINT_GERAR_TOKEN_APP; /** Margem de segurança para considerar o token expirado (ex.: 60s antes) */ private static readonly SKEW_MS; /** TTL padrão se a API não retornar nem expires_at nem expires_in (evita cache infinito) */ private static readonly DEFAULT_TTL_MS; constructor(params: ConstructorInterface); generate(): Promise; private getTokenCache; private fetchNewToken; /** Aceita expires_at (Date | string | number) ou expires_in (segundos) */ private computeExpiresAtMs; /** Converte campo para epoch ms, aceitando number, ISO string ou Date */ private toEpochMs; private getAxiosInstance; }