import { Domain, Health, Link, User } from "#src/api/index";
import { ConfigI } from "#src/config";
/**
 *
 * @see {@link https://docs.kutt.it}
 * @example
 * const kutt = new Kutt();
 */
export default class Kutt {
    #private;
    /**
     * Gets default/global config.
     *
     * @param config
     * @example
     * const api = Kutt.get("api");
     */
    static get<Config extends keyof ConfigI>(config: Config): ConfigI[Config];
    /**
     * Sets default/global config.
     *
     * @param config
     * @param value
     * @example
     * Kutt.set("api", , "https://kutt.it/api/v2");
     * @example
     * Kutt.set("api", , "https://kutt.it/api/v2")
     *   .set("timeout", 1e4);
     */
    static set<Config extends keyof ConfigI>(config: Config, value: ConfigI[Config]): typeof Kutt;
    /**
     * Domains API.
     *
     * @see {@link https://docs.kutt.it/#tag/domains}
     * @example
     * const domains = kutt.domains();
     */
    domains(): Domain;
    /**
     * Gets instance config.
     *
     * @param config
     * @example
     * const api = kutt.get("api");
     */
    get<Config extends keyof ConfigI>(config: Config): ConfigI[Config];
    /**
     * Health API.
     *
     * @see {@link https://docs.kutt.it/#tag/health}
     * @example
     * const health = kutt.health();
     */
    health(): Health;
    /**
     * Links API.
     *
     * @see {@link https://docs.kutt.it/#tag/links}
     * @example
     * const links = kutt.links();
     */
    links(): Link;
    /**
     * Sets instance config.
     *
     * @param config
     * @param value
     * @example
     * kutt = kutt.set("api", , "https://kutt.it/api/v2");
     * @example
     * kutt = kutt.set("api", , "https://kutt.it/api/v2")
     *   .set("timeout", 1e4);
     */
    set<Config extends keyof ConfigI>(config: Config, value: ConfigI[Config]): this;
    /**
     * Users API.
     *
     * @see {@link https://docs.kutt.it/#tag/users}
     * @example
     * const users = kutt.users();
     */
    users(): User;
}
