import { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
export interface ApiResponse<T = any> {
    data: T;
    status: number;
    message?: string;
}
export interface ApiError {
    message: string;
    status: number;
    errors?: any;
}
export declare class ApiClient {
    private instance;
    constructor(config?: AxiosRequestConfig);
    get<T>(url: string, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
    post<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
    put<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
    delete<T>(url: string, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
    patch<T>(url: string, data?: any, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
}
export declare const apiClient: ApiClient;
export type { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError };
//# sourceMappingURL=ApiClient.d.ts.map