declare abstract class Expiration {
    private readonly _doesExpire;
    protected constructor(doesExpire: boolean);
    /**
     * Whether the token expires or not.
     * @returns {boolean}
     */
    doesExpire(): boolean;
}
export declare class ExpiresIn extends Expiration {
    private readonly _validForSeconds;
    /**
     * If doesExpire is false, the refresh token will not have a expiration time, instead validForSeconds will be 'Infinity'.
     * @param {number} [validForSeconds]
     */
    private constructor();
    /**
     * Time token is valid for in seconds.
     * @returns {number} Infinity, if token doesn't expire.
     */
    seconds(): number;
    /**
     * Constructs a ExpiresIn which never expires.
     * @returns {ExpiresIn}
     */
    static never(): ExpiresIn;
    /**
     * Constructs a ExpiresIn with a specified validFor period in seconds.
     * If seconds are undefined, or null, then token never expires.
     * @param validForSeconds
     * @returns {ExpiresIn}
     */
    static seconds(validForSeconds: number): ExpiresIn;
    /**
     * Constructs a ExpiresIn with a specified validFor period in minutes.
     * @param validForMinutes
     * @returns {ExpiresIn}
     */
    static minutes(validForMinutes: number): ExpiresIn;
    /**
     * Constructs a ExpiresIn with a specified validFor period in hours.
     * @param validForHours
     * @returns {ExpiresIn}
     */
    static hours(validForHours: number): ExpiresIn;
    /**
     * Constructs an ExpiresIn with a specified validFor period in days.
     * @param validForDays
     * @returns {ExpiresIn}
     */
    static days(validForDays: number): ExpiresIn;
    /**
     * Constructs an ExpiresIn with a specified expiresBy period in epoch format.
     * @param expiresBy
     * @returns {ExpiresIn}
     */
    static epoch(expiresBy: number): ExpiresIn;
}
export declare class ExpiresAt extends Expiration {
    private readonly validUntil;
    private constructor();
    /**
     * Returns epoch timestamp of when api token expires.
     * @returns {number}
     */
    epoch(): number;
    /**
     * Constructs an ExpiresAt with the specified epoch timestamp,
     * if timestamp is undefined, then epoch timestamp will instead be Infinity.
     * @param epoch
     * @returns {ExpiresAt}
     */
    static fromEpoch(epoch: number | undefined): ExpiresAt;
}
export {};
