import { AxiosInstance, AxiosRequestConfig } from 'axios';
import { State } from '../shared/State';
export type ResourceConfig = {
    apiVersion?: string;
};
/**
 * Generates an AM Axios API instance
 * @param {object} params Params object
 * @param {ResourceConfig} params.resource Takes an object takes a resource object. example:
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either
 * add on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateAmApi({ resource, requestOverride, state, }: {
    resource: ResourceConfig;
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates an OAuth2 Axios API instance
 * @param {object} params Params object
 * @param {ResourceConfig} params.resource Resource config object.
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either
 * add on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateOauth2Api({ resource, requestOverride, authenticate, state, }: {
    resource: ResourceConfig;
    requestOverride?: AxiosRequestConfig;
    authenticate?: boolean;
    state: State;
}): AxiosInstance;
/**
 * Generates an IDM Axios API instance
 * @param {object} params Params object
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateIdmApi({ requestOverride, state, }: {
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates a LogKeys API Axios instance
 * @param {object} params Params object
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateLogKeysApi({ requestOverride, state, }: {
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates a Log API Axios instance
 * @param {object} params Params object
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateLogApi({ requestOverride, state, }: {
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates an Axios instance for the Identity Cloud Environment API
 * @param {object} params Params object
 * @param {ResourceConfig} params.resource Resource config object.
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateEnvApi({ resource, requestOverride, state, }: {
    resource: ResourceConfig;
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates an Axios instance for the Identity Cloud Governance API
 * @param {object} params Params object
 * @param {ResourceConfig} params.resource Resource config object.
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateGovernanceApi({ resource, requestOverride, state, }: {
    resource: ResourceConfig;
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
/**
 * Generates a release (Github or Npm) Axios API instance
 * @param {object} params Params object
 * @param {AxiosRequestConfig} params.requestOverride Takes an object of AXIOS parameters that can be used to either add
 * on extra information or override default properties https://github.com/axios/axios#request-config
 * @param {State} params.state State object
 *
 * @returns {AxiosInstance} Returns a reaady to use Axios instance
 */
export declare function generateReleaseApi({ baseUrl, requestOverride, state, }: {
    baseUrl: string;
    requestOverride?: AxiosRequestConfig;
    state: State;
}): AxiosInstance;
//# sourceMappingURL=BaseApi.d.ts.map