import { AxiosRequestConfig, AxiosResponse } from 'axios';
import { Formats } from './@types/Formats';
import { InfoDNSRecordsParam, InfoDNSZoneParam, LoginParam, UpdateDNSRecordsParam, WithAuthentication } from './@types/Requests';
import { InfoDNSRecordsResponse, InfoDNSZoneResponse, LoginResponse, UpdateDNSRecordsResponse } from './@types/Responses';
export declare function defaultResponseHandler(response: AxiosResponse): AxiosResponse<any, any>;
export default class NetcupRestApi {
    axios: import("axios").AxiosInstance;
    format: Formats;
    constructor(format?: Formats);
    protected postJson<Req, Res>(url: string, data: Req, options?: AxiosRequestConfig): Promise<Res>;
    login(params: LoginParam): Promise<LoginResponse>;
    infoDnsZone(params: WithAuthentication<InfoDNSZoneParam>): Promise<InfoDNSZoneResponse>;
    infoDnsRecords(params: WithAuthentication<InfoDNSRecordsParam>): Promise<InfoDNSRecordsResponse>;
    updateDnsRecords(params: WithAuthentication<UpdateDNSRecordsParam>): Promise<UpdateDNSRecordsResponse>;
}
