import { NameValue } from "../../name-value";
import { ODataConfig } from "../../odata/odataconfig";
interface UseApiBaseConfig {
    endpoint: string;
    id?: string;
    oDataConfig?: ODataConfig;
    queryParams?: NameValue[];
    headers?: Headers;
}
interface UseApiConfigWithData<R extends object> extends UseApiBaseConfig {
    data?: R;
}
export declare function useApiGet<T>(config: UseApiBaseConfig): {
    data: T;
    isLoading: boolean;
    error: unknown;
    refetch: () => Promise<void>;
};
export declare function useApiPost<T, R extends object>(config: UseApiConfigWithData<R>): {
    data: T;
    isLoading: boolean;
    error: unknown;
    refetch: () => Promise<void>;
};
export declare function useApiPut<T, R extends object>(config: UseApiConfigWithData<R>): {
    data: T;
    isLoading: boolean;
    error: unknown;
    refetch: () => Promise<void>;
};
export declare function useApiDelete<T = undefined>(config: UseApiBaseConfig): {
    data: T;
    isLoading: boolean;
    error: unknown;
    refetch: () => Promise<void>;
};
export {};
