/// <reference types="node" />
import { Command, Config as OConfig } from '@oclif/core';
import { Config } from './auth/config';
import { FetchFunction } from './helpers';
import BodyInit = NodeJS.fetch.BodyInit;
export declare const createSubdomainWithApi: (subdomain: string) => string;
export interface CLIInfo {
    commandId: string;
    config: OConfig;
}
export declare function getCLIInfo(cmd: Command): CLIInfo;
export declare class ShowpadClient {
    private readonly apiHost;
    private tokenProvider;
    protected static instance: ShowpadClient;
    private readonly info;
    private readonly fetchFunc;
    constructor(config: Config, info: CLIInfo, verbose?: boolean, fetchFunction?: FetchFunction);
    static getInstance(info: CLIInfo, configDir?: string, verbose?: boolean): Promise<ShowpadClient>;
    get(url: string, config?: RequestInit): Promise<Response>;
    delete(url: string, config?: RequestInit): Promise<Response>;
    post(url: string, data: BodyInit, config?: RequestInit): Promise<Response>;
    put(url: string, data: BodyInit, config: RequestInit): Promise<Response>;
    private prepareConfig;
}
