import AbstractTokenGenerator from './AbstractTokenGenerator';
import { Token, TokenResponse } from './types';
declare type Config = {
    clientId: string;
    clientSecret: string;
    path: string;
    scheme: string;
    port?: string;
    scope?: string;
};
declare type BaseParameters = {
    scope?: string;
};
interface ClientCredentialToken extends Token {
    access_token: string;
    token_type: string;
    refresh_token: never;
    expires_in?: number;
    scope?: string;
}
declare type ClientCredentialResponse = TokenResponse<ClientCredentialToken>;
declare class ClientCredentialsGenerator extends AbstractTokenGenerator<ClientCredentialToken, Config> {
    constructor(tokenGeneratorConfig: Config);
    generateToken(baseParameters?: BaseParameters): Promise<ClientCredentialResponse>;
    refreshToken(accessToken: null | ClientCredentialToken): Promise<ClientCredentialResponse>;
    checkTokenGeneratorConfig(config: Config): void;
}
export default ClientCredentialsGenerator;
