import { CLIInfo } from '../showpad-client';
export declare const CREDENTIALS_FILE = "credentials";
export interface ShowpadConfig {
    showpad_admin_username: string;
    showpad_client_id: string;
    showpad_client_secret: string;
    showpad_subdomain: string;
}
export interface ShowpadEnvConfig extends ShowpadConfig {
    showpad_admin_password: string;
}
export interface Tokens {
    showpad_access_token?: string;
    showpad_refresh_token?: string;
}
export interface Profile extends ShowpadConfig, Tokens {
}
export declare class Config {
    private readonly info;
    private readonly profileName;
    private readonly configFilePath;
    private profile?;
    private showpadEnvConfig;
    protected debug: (...args: any[]) => void;
    constructor(info: CLIInfo, profileName?: string, configDir?: string);
    getShowpadEnvConfig(): ShowpadEnvConfig;
    /**
     * Reads config data from the config file
     *
     * @param mustExist In case the config file doesn't exist: if set to true an error will be thrown,
     *                  otherwise empty config will be returned
     */
    readConfig(mustExist?: boolean): Record<string, Profile>;
    getProfile(verbose?: boolean): Profile;
    readProfile(mustExist?: boolean): Profile;
    resolveConfigVars(verbose?: boolean): Profile;
    updateTokens(tokens: Tokens): void;
    updateProfile(credentials: Profile, verbose?: boolean): void;
    writeConfig(configData: Record<string, Profile>): void;
    private createConfigFilePath;
}
export declare const initConfig: (info: CLIInfo, configDir: string, profileName?: string) => Promise<Config>;
