import { AxiosResponse } from "axios";
import { NgaPhpApi } from "../enums/NgaPhpApi";
import { ThreadBody } from "../response/body/ThreadBody";
import { ReadBody } from "../response/body/ReadBody";
export declare class NgaClient {
    readonly baseUrl: string;
    readonly cookie: string;
    readonly userId: number;
    readonly username: string;
    readonly cid: string;
    private instance;
    /**
     * 构造客户端
     * @param baseUrl nginx代理到官方域名的前缀
     * @param cookie 从浏览器F12中复制得到的cookie
     */
    constructor(baseUrl: string, cookie: string);
    /**
     * 从cookie中解析userId,username,cid
     * @param cookie 用户输入的cookie
     */
    static parseCookie(cookie: string): {
        userId: number;
        username: string;
        cid: string;
        cookie: string;
    };
    /**
     * get获取json数据
     * @param api
     * @param params queryString 参数
     */
    getJson(api: NgaPhpApi, params: object): Promise<AxiosResponse<any, any>>;
    /**
     * get请求获取网页数据
     * @param api api
     * @param params queryString 参数
     */
    getDoc(api: NgaPhpApi, params: object): Promise<AxiosResponse<any, any>>;
    /**
     * read.php
     * @param params 参数
     */
    read(params: object): Promise<ReadBody>;
    /**
     *  read.php 网页
     * @param params 参数
     */
    readDoc(params: object): Promise<ReadBody>;
    /**
     * thread.php
     * @param params 参数
     */
    thread(params: object): Promise<ThreadBody>;
    /**
     * forum.php
     * @param params 参数
     */
    forum(params: object): Promise<any>;
    /**
     * nuke.php
     * @param params 参数
     */
    nuke(params: object): Promise<any>;
    /**
     * post.php
     * @param params 参数
     * @param data form-data
     */
    post(params: object, data?: object): Promise<any>;
    /**
     * 请求一个回复Id的具体地址,使用to参数获取重定向地址
     * @param replyId 回复id
     */
    toReply(replyId: number): Promise<string>;
    /**
     * post请求
     * @param api api
     * @param params queryString 参数
     * @param data form-data 参数
     */
    private postJson;
    /**
     * get请求
     * @param api api
     * @param params queryString 参数
     */
    private get;
    /**
     * 每次请求之前设置cookie，这样可以允许多个客户端同时存在互不干扰
     * @private
     */
    private setCookie;
}
