/// <reference types="node" />
export interface TokenEndpointResponse {
    access_token: string;
    expires_in: string;
    refresh_token: string;
    scope: string;
    token_type: string;
}
export interface TokenEndpointRequestBody {
    client_id: string;
    client_secret: string;
    grant_type: string;
    password?: string;
    refresh_token?: string;
    username?: string;
    scope?: string;
}
export declare const TOKEN_ENDPOINT_ROUTE = "/api/v3/oauth2/token";
export declare class OauthClient {
    private readonly clientId;
    private readonly clientSecret;
    private readonly tokenEndpointPath;
    constructor(host: string, clientId: string, clientSecret: string);
    refreshTokenFlowCall(refreshToken: string): Promise<Response>;
    userCredentialsFlowCall(username: string, password: string): Promise<Response>;
    private prepareRefreshTokenFlowBody;
    private prepareUserCredentialsFlowBody;
}
