/// <reference types="node" />
export class Api extends EventEmitter<[never]> {
    constructor();
    basename: string;
    apiKey: string;
    sessionToken: any;
    onBeforeRequest: any;
    /**
     * @type {string|{name: string, version: string}}
     */
    requestClient: string | {
        name: string;
        version: string;
    };
    GET: (urlTemplate: any, methodOptions?: {}) => (rawData: any, invocationOptions?: {}) => Promise<any>;
    POST: (urlTemplate: any, methodOptions?: {}) => (rawData: any, invocationOptions?: {}) => Promise<any>;
    PUT: (urlTemplate: any, methodOptions?: {}) => (rawData: any, invocationOptions?: {}) => Promise<any>;
    DELETE: (urlTemplate: any, methodOptions?: {}) => (rawData: any, invocationOptions?: {}) => Promise<any>;
    _makeMethod(method: any, creatorOptions?: {}): (urlTemplate: any, methodOptions?: {}) => (rawData: any, invocationOptions?: {}) => Promise<any>;
    _makeRequestWithRetries(method: any, url: any, headers: any, body: any, data: any, options: any): Promise<any>;
    _makeRequest(...args: any[]): Promise<any>;
    _makeRequestWithXhr(method: any, url: any, headers: any, body: any, data: any, options: any): Promise<any>;
    _makeRequestWithFetch(method: any, url: any, headers: any, requestBody: any, data: any, options: any): Promise<string>;
}
export default instance;
export function GET(urlTemplate: any, methodOptions?: {}): (rawData: any, invocationOptions?: {}) => Promise<any>;
export function POST(urlTemplate: any, methodOptions?: {}): (rawData: any, invocationOptions?: {}) => Promise<any>;
export function PUT(urlTemplate: any, methodOptions?: {}): (rawData: any, invocationOptions?: {}) => Promise<any>;
export function DELETE(urlTemplate: any, methodOptions?: {}): (rawData: any, invocationOptions?: {}) => Promise<any>;
export function setLocaleHeader(locale: any): void;
import EventEmitter from "events";
declare const instance: Api;
