import { ODataConfig } from "../odata/odataconfig";
import { NameValue } from "../name-value";
/**
 * Sends a GET request to the specified API endpoint.
 *
 * @param endpoint - API endpoint path.
 * @param id - Optional resource identifier.
 * @param queryParams {@link NameValue} - Optional array of query parameters.
 * @param headers - Optional custom headers.
 */
export declare function apiGet<T>(endpoint: string, entityId?: string, queryParams?: NameValue[], headers?: Headers): Promise<any>;
/**
 * Sends a GET request to retrieve blob from the specified API endpoint.
 *
 * @param endpoint - API endpoint path for the blob resource.
 * @param id - Optional resource identifier to append to the endpoint.
 * @param queryParams {@link NameValue} - Optional array of query parameters to include in the request.
 * @param headers - Optional custom headers to include in the request.
 * @returns Promise that resolves to the blob response from the API.
 */
export declare function apiGetBlob(endpoint: string, resourceId?: string, queryParams?: NameValue[], headers?: Headers): Promise<any>;
/**
 * Sends a GET request to retrieve resources from the specified API endpoint using OData configuration.
 *
 * @param endpoint - API endpoint path.
 * @param oDataConfig {@link ODataConfig} - OData configuration object.
 * @param id - Optional resource identifier.
 */
export declare function apiGetWithOData<T>(endpoint: string, oDataConfig: ODataConfig, entityId?: string): Promise<any>;
/**
 * Sends POST request to backend
 *
 * @template T - response type
 * @template R - request body type
 * @param endpoint - backend api endpoint
 * @param data - request body
 * @param headers - request headers
 * */
export declare function apiPost<T, R extends object>(endpoint: string, data?: R, headers?: Headers): Promise<any>;
/**
 * Sends file to backend via POST request
 *
 * @template T - response type
 * @param endpoint - backend api endpoint
 * @param data - request body
 * @param headers - request headers
 * */
export declare function apiPostFile<T>(endpoint: string, data: FormData, headers?: Headers): Promise<any>;
/**
 * Sends PUT request to backend
 *
 * @template T - response type
 * @template R - request body type
 * @param endpoint - backend api endpoint
 * @param data - request body
 * @param headers - request headers
 * */
export declare function apiPut<T, R extends object>(endpoint: string, data: R, headers?: Headers): Promise<any>;
/**
 * Sends DELETE request to backend. Deletes a resource by Id
 *
 * @param endpoint - backend api endpoint
 * @param id - resource Id
 * @param headers - request headers
 * */
export declare function apiDelete(endpoint: string, entityId: string, headers?: Headers): Promise<void>;
