import Base from '../Base';
import AsyncLock from '../util/AsyncLock';
import type Client from '../Client';
import type { AuthData } from '../../resources/structs';
import type { AuthSessionType } from '../../resources/enums';
/**
 * Represents an auth session
 */
declare abstract class AuthSession<T extends AuthSessionType> extends Base {
    /**
     * The access token
     */
    accessToken: string;
    /**
     * The time when the access token expires
     */
    expiresAt: Date;
    /**
     * The account id
     */
    accountId: string;
    /**
     * The client id
     */
    clientId: string;
    /**
     * The auth session type
     */
    type: T;
    /**
     * The client secret
     */
    clientSecret: string;
    /**
     * The refresh lock
     */
    refreshLock: AsyncLock;
    constructor(client: Client, data: AuthData, clientSecret: string, type: T);
    get isExpired(): boolean;
}
export default AuthSession;
