import { OAuth2Client, Credentials } from 'google-auth-library';
import type { Directory, IDirectoryConfig, JacksonOption, Response } from '../../../typings';
interface GoogleAuthParams {
    opts: JacksonOption;
    directories: IDirectoryConfig;
}
export declare class GoogleAuth {
    private opts;
    private directories;
    constructor({ directories, opts }: GoogleAuthParams);
    createOAuth2Client(directory: Directory): OAuth2Client;
    generateAuthorizationUrl(params: {
        directoryId: string;
    }): Promise<Response<{
        authorizationUrl: string;
    }>>;
    getAccessToken(params: {
        directoryId: string;
        code: string;
    }): Promise<Response<Credentials>>;
    setToken(params: {
        directoryId: string;
        accessToken: Credentials['access_token'];
        refreshToken: Credentials['refresh_token'];
    }): Promise<Response<Directory>>;
}
export {};
