import { JwtPayload } from 'jwt-decode';
import { CallerType } from './caller.js';
import { IToken } from './token.js';

type JsonWebTokenPayload = JwtPayload & {
    readonly [key: string]: any;
};
declare class JsonWebToken implements IToken {
    get audience(): string | string[] | undefined;
    get issuer(): string | undefined;
    get keyId(): string | undefined;
    get appId(): string;
    get appDisplayName(): string | undefined;
    get tenantId(): string | undefined;
    get version(): string | undefined;
    get serviceUrl(): string;
    get from(): CallerType;
    get fromId(): string;
    get expiration(): number | undefined;
    private readonly _value;
    private readonly _payload;
    constructor(value: string);
    isExpired(bufferMs?: number): boolean;
    toString(): string;
}

export { JsonWebToken, type JsonWebTokenPayload };
