/**
 * ClimatePartner API Order Service
 * A Unified API for all ClimatePartner products
 *
 * The version of the OpenAPI document: 1.3.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { type RequestArgs, BaseAPI } from '../base';
import type { OrderCollectiveGetInfoResponse } from '../models';
import type { OrderCollectiveResponse } from '../models';
import type { OrderInfoRequestHeader } from '../models';
import type { OrderInfoRequestHeaderCreate } from '../models';
import type { OrderSubOrderDeleteResponse } from '../models';
import type { OrderSubOrderGetInfoResponse } from '../models';
import type { OrderSubOrderRequest } from '../models';
import type { OrderSubOrderResponse } from '../models';
import type { OrderUpdateInfoSubOrderRequest } from '../models';
/**
 * OrderServiceCollectiveOrdersApi - axios parameter creator
 */
export declare const OrderServiceCollectiveOrdersApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @summary Creates a collective order
     * @param {OrderInfoRequestHeaderCreate} orderInfoRequestHeaderCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollectiveOrder: (orderInfoRequestHeaderCreate: OrderInfoRequestHeaderCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Creates a subOrder for a collective order
     * @param {OrderSubOrderRequest} orderSubOrderRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createSubOrder: (orderSubOrderRequest: OrderSubOrderRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Delete a sub Order
     * @param {string} orderId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteSubOrder: (orderId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Returns the existing collective offset order {orderId}
     * @param {string} collectiveOrderId
     * @param {string} [cursor] When collective order is returned with it\&#39;s sub orders, the cursor marks the last suborder. Use this to walk through paginated sub orders
     * @param {string} [limit] Determines number of sub orders to return per page for the given collective order
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollectiveOrder: (collectiveOrderId: string, cursor?: string, limit?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Returns the existing suborder offset order
     * @param {string} orderId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSubOrder: (orderId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Updates an existing collective offset order with given orderId
     * @param {string} collectiveOrderId
     * @param {OrderInfoRequestHeader} orderInfoRequestHeader
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollectiveOrder: (collectiveOrderId: string, orderInfoRequestHeader: OrderInfoRequestHeader, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Update a sub Order
     * @param {string} orderId
     * @param {OrderUpdateInfoSubOrderRequest} [orderUpdateInfoSubOrderRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateSubOrder: (orderId: string, orderUpdateInfoSubOrderRequest?: OrderUpdateInfoSubOrderRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * OrderServiceCollectiveOrdersApi - functional programming interface
 */
export declare const OrderServiceCollectiveOrdersApiFp: (configuration?: Configuration) => {
    /**
     *
     * @summary Creates a collective order
     * @param {OrderInfoRequestHeaderCreate} orderInfoRequestHeaderCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollectiveOrder(orderInfoRequestHeaderCreate: OrderInfoRequestHeaderCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderCollectiveResponse>>;
    /**
     *
     * @summary Creates a subOrder for a collective order
     * @param {OrderSubOrderRequest} orderSubOrderRequest
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createSubOrder(orderSubOrderRequest: OrderSubOrderRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderSubOrderResponse>>;
    /**
     *
     * @summary Delete a sub Order
     * @param {string} orderId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteSubOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderSubOrderDeleteResponse>>;
    /**
     *
     * @summary Returns the existing collective offset order {orderId}
     * @param {string} collectiveOrderId
     * @param {string} [cursor] When collective order is returned with it\&#39;s sub orders, the cursor marks the last suborder. Use this to walk through paginated sub orders
     * @param {string} [limit] Determines number of sub orders to return per page for the given collective order
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollectiveOrder(collectiveOrderId: string, cursor?: string, limit?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderCollectiveGetInfoResponse>>;
    /**
     *
     * @summary Returns the existing suborder offset order
     * @param {string} orderId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSubOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderSubOrderGetInfoResponse>>;
    /**
     *
     * @summary Updates an existing collective offset order with given orderId
     * @param {string} collectiveOrderId
     * @param {OrderInfoRequestHeader} orderInfoRequestHeader
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollectiveOrder(collectiveOrderId: string, orderInfoRequestHeader: OrderInfoRequestHeader, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderCollectiveResponse>>;
    /**
     *
     * @summary Update a sub Order
     * @param {string} orderId
     * @param {OrderUpdateInfoSubOrderRequest} [orderUpdateInfoSubOrderRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateSubOrder(orderId: string, orderUpdateInfoSubOrderRequest?: OrderUpdateInfoSubOrderRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderSubOrderResponse>>;
};
/**
 * OrderServiceCollectiveOrdersApi - factory interface
 */
export declare const OrderServiceCollectiveOrdersApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @summary Creates a collective order
     * @param {OrderServiceCollectiveOrdersApiCreateCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiCreateCollectiveOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderCollectiveResponse>;
    /**
     *
     * @summary Creates a subOrder for a collective order
     * @param {OrderServiceCollectiveOrdersApiCreateSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createSubOrder(requestParameters: OrderServiceCollectiveOrdersApiCreateSubOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderSubOrderResponse>;
    /**
     *
     * @summary Delete a sub Order
     * @param {OrderServiceCollectiveOrdersApiDeleteSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteSubOrder(requestParameters: OrderServiceCollectiveOrdersApiDeleteSubOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderSubOrderDeleteResponse>;
    /**
     *
     * @summary Returns the existing collective offset order {orderId}
     * @param {OrderServiceCollectiveOrdersApiGetCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiGetCollectiveOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderCollectiveGetInfoResponse>;
    /**
     *
     * @summary Returns the existing suborder offset order
     * @param {OrderServiceCollectiveOrdersApiGetSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSubOrder(requestParameters: OrderServiceCollectiveOrdersApiGetSubOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderSubOrderGetInfoResponse>;
    /**
     *
     * @summary Updates an existing collective offset order with given orderId
     * @param {OrderServiceCollectiveOrdersApiUpdateCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiUpdateCollectiveOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderCollectiveResponse>;
    /**
     *
     * @summary Update a sub Order
     * @param {OrderServiceCollectiveOrdersApiUpdateSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateSubOrder(requestParameters: OrderServiceCollectiveOrdersApiUpdateSubOrderRequest, options?: RawAxiosRequestConfig): AxiosPromise<OrderSubOrderResponse>;
};
/**
 * Request parameters for createCollectiveOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiCreateCollectiveOrderRequest {
    readonly orderInfoRequestHeaderCreate: OrderInfoRequestHeaderCreate;
}
/**
 * Request parameters for createSubOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiCreateSubOrderRequest {
    readonly orderSubOrderRequest: OrderSubOrderRequest;
}
/**
 * Request parameters for deleteSubOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiDeleteSubOrderRequest {
    readonly orderId: string;
}
/**
 * Request parameters for getCollectiveOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiGetCollectiveOrderRequest {
    readonly collectiveOrderId: string;
    /**
     * When collective order is returned with it\&#39;s sub orders, the cursor marks the last suborder. Use this to walk through paginated sub orders
     */
    readonly cursor?: string;
    /**
     * Determines number of sub orders to return per page for the given collective order
     */
    readonly limit?: string;
}
/**
 * Request parameters for getSubOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiGetSubOrderRequest {
    readonly orderId: string;
}
/**
 * Request parameters for updateCollectiveOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiUpdateCollectiveOrderRequest {
    readonly collectiveOrderId: string;
    readonly orderInfoRequestHeader: OrderInfoRequestHeader;
}
/**
 * Request parameters for updateSubOrder operation in OrderServiceCollectiveOrdersApi.
 */
export interface OrderServiceCollectiveOrdersApiUpdateSubOrderRequest {
    readonly orderId: string;
    readonly orderUpdateInfoSubOrderRequest?: OrderUpdateInfoSubOrderRequest;
}
/**
 * OrderServiceCollectiveOrdersApi - object-oriented interface
 */
export declare class OrderServiceCollectiveOrdersApi extends BaseAPI {
    /**
     *
     * @summary Creates a collective order
     * @param {OrderServiceCollectiveOrdersApiCreateCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiCreateCollectiveOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderCollectiveResponse, any, {}>>;
    /**
     *
     * @summary Creates a subOrder for a collective order
     * @param {OrderServiceCollectiveOrdersApiCreateSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createSubOrder(requestParameters: OrderServiceCollectiveOrdersApiCreateSubOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderSubOrderResponse, any, {}>>;
    /**
     *
     * @summary Delete a sub Order
     * @param {OrderServiceCollectiveOrdersApiDeleteSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteSubOrder(requestParameters: OrderServiceCollectiveOrdersApiDeleteSubOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderSubOrderDeleteResponse, any, {}>>;
    /**
     *
     * @summary Returns the existing collective offset order {orderId}
     * @param {OrderServiceCollectiveOrdersApiGetCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiGetCollectiveOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderCollectiveGetInfoResponse, any, {}>>;
    /**
     *
     * @summary Returns the existing suborder offset order
     * @param {OrderServiceCollectiveOrdersApiGetSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSubOrder(requestParameters: OrderServiceCollectiveOrdersApiGetSubOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderSubOrderGetInfoResponse, any, {}>>;
    /**
     *
     * @summary Updates an existing collective offset order with given orderId
     * @param {OrderServiceCollectiveOrdersApiUpdateCollectiveOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateCollectiveOrder(requestParameters: OrderServiceCollectiveOrdersApiUpdateCollectiveOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderCollectiveResponse, any, {}>>;
    /**
     *
     * @summary Update a sub Order
     * @param {OrderServiceCollectiveOrdersApiUpdateSubOrderRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateSubOrder(requestParameters: OrderServiceCollectiveOrdersApiUpdateSubOrderRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<OrderSubOrderResponse, any, {}>>;
}
