import { ServiceAccountJson } from '../model/AccountJson.js';
import { GoogleUser } from '../containers/server/auth.js';
export declare const SCOPES: string[];
export interface GoogleAuth {
    refresh_token: string | null;
    expiry_date: number | null;
    access_token: string | null;
    token_type?: string | null;
    id_token?: string | null;
    scopes: string[];
}
export interface HasAccessToken {
    getAccessToken(): Promise<string>;
}
export declare function getCliCode(client_id: string): Promise<string>;
export declare class UserAuthClient implements HasAccessToken {
    private client_id;
    private client_secret;
    private access_token;
    private refresh_token;
    private expiry_date;
    constructor(client_id: string, client_secret: string);
    revokeToken(access_token: string): Promise<unknown>;
    getWebDriveInstallUrl(redirect_uri: string, state: string): Promise<string>;
    getWebDriveShareUrl(redirect_uri: string, state: string): Promise<string>;
    getUploadDriveUrl(redirect_uri: string, state: string): Promise<string>;
    getWebAuthUrl(redirect_uri: string, state: string): Promise<string>;
    authorizeResponseCode(code: string, redirect_uri: string): Promise<void>;
    authorizeCookieData(access_token: string, refresh_token: string, expiry_date: number): Promise<void>;
    authorizeUserAccount(redirect_uri?: string): Promise<void>;
    checkAccessToken(): Promise<void>;
    getAccessToken(): Promise<string>;
    setCredentials(google_auth: GoogleAuth): void;
    getUser(access_token: string): Promise<GoogleUser>;
    getAuthData(): Promise<{
        google_access_token: string;
        google_refresh_token: string;
        google_expiry_date: number;
    }>;
}
export declare class ServiceAuthClient implements HasAccessToken {
    private readonly service_account_json;
    private access_token;
    private expiry_date;
    constructor(service_account_json: ServiceAccountJson);
    fetchAccessToken(): Promise<void>;
    getAccessToken(): Promise<string>;
}
//# sourceMappingURL=AuthClient.d.ts.map