export type AccessTokenConfig = {
    auth_mode?: 'browser' | 'credentials';
    client_id: string;
    client_secret?: string;
    auth_server_url: string;
    virtru_client_pubkey?: string;
    signing_key?: CryptoKeyPair;
};
export type AccessTokenResponse = {
    access_token: string;
    refresh_token: string;
};
export declare class AccessToken {
    config: AccessTokenConfig;
    request: ((input: RequestInfo, init?: RequestInit) => Promise<Response>) | undefined;
    data?: AccessTokenResponse;
    baseUrl: string;
    signing_key?: CryptoKeyPair;
    virtru_client_pubkey?: string;
    extraHeaders: Record<string, string>;
    constructor(cfg: AccessTokenConfig, request?: typeof fetch);
    info(accessToken: string): Promise<unknown>;
    forceRefresh(): Promise<string>;
    refresh(refreshToken: string): Promise<string>;
    exchangeJwt(jwtToken: string): Promise<string>;
    doPost(url: string, o: Record<string, string>): Promise<Response>;
    get(): Promise<string>;
}
//# sourceMappingURL=AccessToken.d.ts.map