/**
 * Created by tacb0ss on 07/05/2018.
 */
import { Module } from '@nu-art/ts-common';
import { GoogleAuth, JWTInput } from 'google-auth-library';
import { JWTOptions } from 'google-auth-library/build/src/auth/jwtclient';
import { OAuth2ClientOptions } from 'google-auth-library/build/src/auth/oauth2client';
import { UserRefreshClientOptions } from 'google-auth-library/build/src/auth/refreshclient';
type AuthModuleConfig = {
    auth: {
        [k: string]: JWT_Input | string;
    };
};
type Version = 'v1' | 'v2' | 'v3' | 'v4';
export type JWT_Input = JWTInput;
export declare class ModuleBE_Auth_Class extends Module<AuthModuleConfig> {
    constructor();
    getAuth<T extends Version = 'v2'>(authKey: string, scopes: string[], version?: T, clientOptions?: JWTOptions | OAuth2ClientOptions | UserRefreshClientOptions): {
        version: T;
        auth: GoogleAuth;
    };
    getAuthConfig(authKey: string): string | JWTInput;
    getJWT(authKey: string, scopes: string[]): Promise<import("google-auth-library").Credentials>;
}
export declare const ModuleBE_Auth: ModuleBE_Auth_Class;
export {};
