/** @packageDocumentation
 * @module iTwinsClient
 */
import type { AccessToken } from "@itwin/core-bentley";
import type { Method } from "axios";
import type { AxiosRequestConfig } from "axios";
import type { ITwinsAPIResponse, ITwinsQueryArg, ITwinsQueryArgBase, ITwinSubClass, RepositoriesQueryArg } from "./iTwinsAccessProps";
export declare class BaseClient {
    protected _baseUrl: string;
    constructor(url?: string);
    /**
     * Sends a basic API request
     * @param accessToken The client access token string
     * @param method The method type of the request (ex. GET, POST, DELETE, etc.)
     * @param url The url of the request
     * @param data (Optional) The payload of the request
     * @param property (Optional) The target property (ex. iTwins, repositories, etc.)
     * @param headers (Optional) Extra request headers.
     */
    protected sendGenericAPIRequest(accessToken: AccessToken, method: Method, url: string, data?: any, property?: string, headers?: Record<string, string | number | boolean>): Promise<ITwinsAPIResponse<any>>;
    /**
     * Build the request methods, headers, and other options
     * @param accessTokenString The client access token string
     * @param method The method type of the request (ex. GET, POST, DELETE, etc.)
     * @param url The url of the request
     * @param data (Optional) The payload of the request
     * @param headers (Optional) Extra request headers.
     */
    protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any, headers?: Record<string, string | number | boolean>): AxiosRequestConfig;
    /**
      * Build a query to be appended to a URL
      * @param queryArg Object container queryable properties
      * @returns query string with AccessControlQueryArg applied, which should be appended to a url
      */
    protected getQueryStringArgBase(queryArg?: ITwinsQueryArgBase, subClass?: ITwinSubClass): string;
    /**
     * Build a query to be appended to a URL
     * @param queryArg Object container queryable properties
     * @returns query string with AccessControlQueryArg applied, which should be appended to a url
     */
    protected getQueryStringArg(queryArg?: ITwinsQueryArg, subClass?: ITwinSubClass): string;
    /**
     * Build a query to be appended to the URL for iTwin Repositories
     * @param queryArg Object container queryable properties
     * @returns query string with RepositoriesQueryArg applied, which should be appended to a url
     */
    protected getRepositoryQueryString(queryArg?: RepositoriesQueryArg): string;
}
//# sourceMappingURL=BaseClient.d.ts.map