import { AxiosPromise } from "axios";
import * as models from "./models";
export declare class client {
    username: string;
    key: string;
    apiURL: string;
    uiURL: string;
    constructor(serverURL: string, webURL: string, username?: string, key?: string);
    /**
     * General function to send a HTTP GET to the Evergreen API
     *
     * @param resource - resource to GET, can be a path
     * @param params - query params to append to the request URL, in the format {"param": "value"}
     * @returns a promise for the caller to handle responses
     */
    getAPIResource(resource: string, params?: object): AxiosPromise;
    /**
     * General function to send a HTTP GET to the Evergreen UI
     *
     * @param resource - resource to GET, can be a path
     * @param params - query params to append to the request URL, in the format {"param": "value"}
     * @returns a promise for the caller to handle responses
     */
    getUIResource(resource: string, params?: object): AxiosPromise;
    /**
     * General function to send a HTTP POST to Evergreen
     *
     * @param resource - resource to POST to, can be a path
     * @param body - body of the request, usually as an object
     * @returns a promise for the caller to handle responses
     */
    postAPIResource(resource: string, body: any): AxiosPromise;
    /**
     * General function to send a HTTP POST to the Evergreen UI
     *
     * @param resource - resource to POST to, can be a path
     * @param body - body of the request, usually as an object
     * @returns a promise for the caller to handle responses
     */
    postUIResource(resource: string, body: any): AxiosPromise;
    /**
     * Gets all distros
     *
     * @returns a promise for the caller to handle responses
     */
    getDistros(): AxiosPromise<any>;
    /**
     * Gets aggregated or detailed stats for tasks that have finished recently
     *
     * @param verbose - returns task details rather than aggregated stats
     * @param lookbackMins - look for tasks that ended at most this many minutes before now
     * @param status - task statuses (can be comma-separated list) to filter on
     * @returns a promise for the caller to handle responses
     */
    getRecentTasks(verbose?: boolean, lookbackMins?: number, status?: string): AxiosPromise<any>;
    /**
     * Updates header cookies when given login credentials
     *
     * @param username - Evergreen user's username
     * @param password - Evergreen user's password
     * @returns a promise for the caller to handle responses
     */
    getToken(username?: string, password?: string): AxiosPromise<any>;
    /**
     * Gets patches for a particular user
     * @param username - Evergreen user's username
     * @returns a promise for the caller to handle responses
     */
    getPatches(username?: string, page?: number): AxiosPromise<models.Patches>;
    /**
     * Gets patches for a particular project
     * @param projectName - Evergreen project name
     * @returns a promise for the caller to handle responses
     */
    getProjectPatches(projectName?: string, page?: number): AxiosPromise<models.Patches>;
    /**
     * Gets logs of a particular type for a particular task/
     * @param taskId - identifier for the task whose logs we want
     * @param type - type of log to return
     * @returns a promise for the caller to handle responses
     */
    getLogs(taskId: string, type: string, executionNumber: number): AxiosPromise<string>;
    /**
     * Gets build for a given build ID
     * @param id - build ID whose tasks we want
     * @returns a promise for the caller to handle responses
     */
    getBuild(id: string): AxiosPromise<models.Build>;
    /**
     * Gets tasks for a given build ID
     * @param buildId - build ID whose tasks we want
     * @returns a promise for the caller to handle responses
     */
    getTasksForBuild(buildId: string): AxiosPromise<models.APITask[]>;
    /**
     * Gets tests for a given task ID
     * @param taskId - task ID whose tests we want
     * @returns a promise for the caller to handle responses
     */
    getTestsForTask(taskId: string): AxiosPromise<models.APITest[]>;
    /**
     * Gets the admin settings
     *
     * @param callback - function to process the response
     * @returns a promise for the caller to handle responses
     */
    getAdminConfig(): AxiosPromise<models.AdminSettings>;
    /**
     * Sets the admin settings
     *
     * @param callback - function to process the response
     * @param settings - settings object to set in the db
     * @returns a promise for the caller to handle responses
     */
    setAdminConfig(settings: models.AdminSettings): AxiosPromise<models.AdminSettings>;
    /**
     * Gets the Evergreen banner message
     *
     * @param callback - function to process the response
     * @returns a promise for the caller to handle responses
     */
    getBanner(): AxiosPromise<any>;
    /**
     * Sets the Evergreen banner message
     *
     * @param message - text to set in the banner
     * @param theme - color theme to use
     * @returns a promise for the caller to handle responses
     */
    setBanner(message: string, theme: string): AxiosPromise<any>;
    private formRequest;
}
export declare function apiV2Resource(resource: string): string;
export declare function queryString(params?: object): string;
