/**
 * Properties of remote API route.
 *
 * @author Jeongho Nam - https://github.com/samchon
 */
export interface IFetchRoute<Method extends "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE"> {
    /**
     * Method of the HTTP request.
     */
    method: Method;
    /**
     * Path of the HTTP request.
     */
    path: string;
    /**
     * Path template.
     *
     * Filled since 3.2.2 version.
     */
    template?: string;
    /**
     * Request body data info.
     */
    request: Method extends "DELETE" | "POST" | "PUT" | "PATCH" ? IFetchRoute.IBody | null : null;
    /**
     * Response body data info.
     */
    response: Method extends "HEAD" ? null : IFetchRoute.IBody;
    /**
     * When special status code being used.
     */
    status: number | null;
    /**
     * Parser of the query string.
     *
     * If content type of response body is `application/x-www-form-urlencoded`,
     * then this `parseQuery` function would be called.
     *
     * If you've forgotten to configuring this `parseQuery` property about the
     * `application/x-www-form-urlencoded` typed response body data, then
     * only the `URLSearchParams` typed instance would be returned instead.
     */
    parseQuery?(input: URLSearchParams): any;
}
export declare namespace IFetchRoute {
    /**
     * Metadata of body.
     *
     * Describes how content-type being used in body, and whether encrypted or not.
     */
    interface IBody {
        type: "application/json" | "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
        encrypted?: boolean;
    }
}
