import { AxiosRequestConfig } from "axios";
import { ResponseSchema } from "./contractErrorHandling.service";
export declare class APIService {
    private apiService;
    private token;
    private apiToken;
    private walletAddress;
    private uuid;
    private baseUrl;
    constructor(url: string);
    get<T>(url: string, queryParams?: object, config?: AxiosRequestConfig & {
        isAuthenticationRequired?: boolean;
    }, baseUrl?: string): Promise<{
        data: T | undefined;
        ok: boolean;
        status: number;
        response: {
            data: any;
            message: any;
            errorCode: any;
        };
    }>;
    post<T>(url: string, data: object, config?: AxiosRequestConfig & {
        isAuthenticationRequired?: boolean;
    }, baseUrl?: string): Promise<{
        data: T | undefined;
        ok: boolean;
        status: number;
        response: {
            data: any;
            message: any;
            errorCode: any;
        };
    }>;
    put<T>(url: string, data: object, config?: AxiosRequestConfig & {
        isAuthenticationRequired?: boolean;
    }, baseUrl?: string): Promise<{
        data: T | undefined;
        ok: boolean;
        status: number;
        response: {
            data: any;
            message: any;
            errorCode: any;
        };
    }>;
    patch<T>(url: string, data: object, config?: AxiosRequestConfig & {
        isAuthenticationRequired?: boolean;
    }, baseUrl?: string): Promise<{
        data: T | undefined;
        ok: boolean;
        status: number;
        response: {
            data: any;
            message: any;
            errorCode: any;
        };
    }>;
    delete<T>(url: string, data: object, config?: AxiosRequestConfig & {
        isAuthenticationRequired?: boolean;
    }, baseUrl?: string): Promise<{
        data: T | undefined;
        ok: boolean;
        status: number;
        response: {
            data: any;
            message: any;
            errorCode: any;
        };
    }>;
    setAuthToken: (token: string) => Promise<void>;
    setAPIToken: (apiToken: string) => Promise<void>;
    setUUID: (uuid: string) => Promise<void>;
    setWalletAddress: (address: string) => Promise<void>;
    private transformRequest;
    private handleResponse;
    transformAPItoResponseSchema(APIResponse: any): ResponseSchema;
}
