/**
 * kiotaの戻り値がoptionalなので、Requiredを使った型でAPIを実行する
 *
 * 一括で必須とするため、個別対応をすることはできない
 * 個別対応の場合はこれを使用せずに、個別で判定を行うこと
 */
import { AdditionalDataHolder, RequestConfiguration } from '@microsoft/kiota-abstractions';
import { ApiFunction, ApiFunctionBody, ApiFunctionRequest, ApiFunctionResponse, NonBodyApiFunction, NonBodyFunctionRequest, NonBodyFunctionResponse, RequiredDeepWithoutAdditionalData, ResponseVoidApiFunction, ResponseVoidApiFunctionBody, ResponseVoidApiFunctionRequest } from './type';
/**
 * APIを実行する
 *
 * @example
 * ```
 * const client = await createSdkServerClient();
 * const response = await executeKiotaApi(client.v1.xxx.get.bind(client))({ queryParameters: { companyId: 1 } });
 * ```
 */
export declare function executeKiotaApi<T extends NonBodyApiFunction, Request extends object = NonBodyFunctionRequest<T>, Response extends AdditionalDataHolder = NonBodyFunctionResponse<T>>(getApiFunction: T): (requestConfiguration?: RequestConfiguration<Request>) => Promise<RequiredDeepWithoutAdditionalData<Response>>;
/**
 * BodyをもつAPIを実行する
 *
 * @example
 * ```
 * const client = await createSdkServerClient();
 * const response = await executeKiotaApiWithBody(client.v1.xxx.post.bind(client))(body, requestConfiguration);
 * ```
 */
export declare function executeKiotaApiWithBody<T extends ApiFunction, Body extends AdditionalDataHolder = ApiFunctionBody<T>, Request extends object = ApiFunctionRequest<T>, Response extends AdditionalDataHolder = ApiFunctionResponse<T>>(apiFunction: T): (body: RequiredDeepWithoutAdditionalData<Body>, requestConfiguration?: RequestConfiguration<Request>) => Promise<RequiredDeepWithoutAdditionalData<Response>>;
export declare function executeKiotaApiWithBodyResponseVoid<T extends ResponseVoidApiFunction, Body extends AdditionalDataHolder = ResponseVoidApiFunctionBody<T>, Request extends object = ResponseVoidApiFunctionRequest<T>>(apiFunction: T): (body: RequiredDeepWithoutAdditionalData<Body>, requestConfiguration?: RequestConfiguration<Request>) => Promise<void>;
