import type NetworkClient from '../../communication/NetworkClient';
import type Token from '../../data/oauth/data';
import type Callback from '../../types/Callback';
import { type CreateParameters, type RevokeParameters } from './parameters';
export default class OAuthBinder {
    protected readonly networkClient: NetworkClient;
    protected readonly endpoint: string;
    constructor(networkClient: NetworkClient, endpoint?: string);
    /**
     * Makes an OAuth API request with Basic authentication.
     * OAuth token endpoints require application/x-www-form-urlencoded body encoding
     * and Basic auth with client credentials (different from standard Mollie API).
     */
    protected request<T>(method: string, basicAuthToken: string, data?: Partial<Record<string, string>>): Promise<T>;
    /**
     * Exchange the authorization code for an access token, or refresh an existing access token.
     *
     * @since 4.4.0
     * @see https://docs.mollie.com/reference/oauth-generate-tokens
     */
    create(parameters: CreateParameters): Promise<Token>;
    create(parameters: CreateParameters, callback: Callback<Token>): void;
    /**
     * Revoke an access token or refresh token. Once revoked, the token can no longer be used.
     *
     * @since 4.4.0
     * @see https://docs.mollie.com/reference/oauth-revoke-tokens
     */
    revoke(parameters: RevokeParameters): Promise<true>;
    revoke(parameters: RevokeParameters, callback: Callback<true>): void;
}
