/**
 * OpenAPI spec version: 1.0
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { OcTokenService } from './token.service';
import { AccessTokenBasic } from '../model/accessTokenBasic';
import { BuyerAddress } from '../model/buyerAddress';
import { BuyerCreditCard } from '../model/buyerCreditCard';
import { BuyerProduct } from '../model/buyerProduct';
import { Catalog } from '../model/catalog';
import { Category } from '../model/category';
import { ListBuyerAddress } from '../model/listBuyerAddress';
import { ListBuyerCreditCard } from '../model/listBuyerCreditCard';
import { ListBuyerProduct } from '../model/listBuyerProduct';
import { ListCatalog } from '../model/listCatalog';
import { ListCategory } from '../model/listCategory';
import { ListCostCenter } from '../model/listCostCenter';
import { ListOrder } from '../model/listOrder';
import { ListPromotion } from '../model/listPromotion';
import { ListShipment } from '../model/listShipment';
import { ListShipmentItem } from '../model/listShipmentItem';
import { ListSpec } from '../model/listSpec';
import { ListSpendingAccount } from '../model/listSpendingAccount';
import { ListUserGroup } from '../model/listUserGroup';
import { MeUser } from '../model/meUser';
import { Promotion } from '../model/promotion';
import { Shipment } from '../model/shipment';
import { Spec } from '../model/spec';
import { SpendingAccount } from '../model/spendingAccount';
import { TokenPasswordReset } from '../model/tokenPasswordReset';
import { Configuration } from '../configuration';
export declare class OcMeService {
    protected httpClient: HttpClient;
    protected ocTokenService: OcTokenService;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    private impersonating;
    constructor(httpClient: HttpClient, ocTokenService: OcTokenService, basePath: string, configuration: Configuration);
    /**
     * @description enable impersonation by calling this prior to any of the other methods in this service
     *
     */
    As(): this;
    /**
     *
     *
     * @param buyerAddress
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    CreateAddress<BuyerAddressXp = any>(buyerAddress: BuyerAddress, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerAddress<BuyerAddressXp>>;
    CreateAddress<BuyerAddressXp = any>(buyerAddress: BuyerAddress, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerAddress>>;
    CreateAddress<BuyerAddressXp = any>(buyerAddress: BuyerAddress, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerAddress>>;
    /**
     *
     *
     * @param buyerCreditCard
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    CreateCreditCard<BuyerCreditCardXp = any>(buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerCreditCard<BuyerCreditCardXp>>;
    CreateCreditCard<BuyerCreditCardXp = any>(buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerCreditCard>>;
    CreateCreditCard<BuyerCreditCardXp = any>(buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerCreditCard>>;
    /**
     *
     *
     * @param addressID ID of the address.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    DeleteAddress(addressID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    DeleteAddress(addressID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    DeleteAddress(addressID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     *
     *
     * @param creditcardID ID of the creditcard.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    DeleteCreditCard(creditcardID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    DeleteCreditCard(creditcardID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    DeleteCreditCard(creditcardID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     *
     *
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    Get<MeUserXp = any>(options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<MeUser<MeUserXp>>;
    Get<MeUserXp = any>(options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<MeUser>>;
    Get<MeUserXp = any>(options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<MeUser>>;
    /**
     *
     *
     * @param addressID ID of the address.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetAddress<BuyerAddressXp = any>(addressID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerAddress<BuyerAddressXp>>;
    GetAddress<BuyerAddressXp = any>(addressID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerAddress>>;
    GetAddress<BuyerAddressXp = any>(addressID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerAddress>>;
    /**
     *
     *
     * @param catalogID ID of the catalog.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetCatalog<CatalogXp = any>(catalogID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<Catalog<CatalogXp>>;
    GetCatalog<CatalogXp = any>(catalogID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<Catalog>>;
    GetCatalog<CatalogXp = any>(catalogID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<Catalog>>;
    /**
     *
     *
     * @param categoryID ID of the category.
     * @param catalogID ID of the catalog.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetCategory<CategoryXp = any>(categoryID: string, catalogID: string, options?: {
        catalogID?: string;
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<Category<CategoryXp>>;
    GetCategory<CategoryXp = any>(categoryID: string, catalogID: string, options?: {
        catalogID?: string;
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<Category>>;
    GetCategory<CategoryXp = any>(categoryID: string, catalogID: string, options?: {
        catalogID?: string;
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<Category>>;
    /**
     *
     *
     * @param creditcardID ID of the creditcard.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetCreditCard<BuyerCreditCardXp = any>(creditcardID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerCreditCard<BuyerCreditCardXp>>;
    GetCreditCard<BuyerCreditCardXp = any>(creditcardID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerCreditCard>>;
    GetCreditCard<BuyerCreditCardXp = any>(creditcardID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerCreditCard>>;
    /**
     *
     *
     * @param productID ID of the product.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetProduct<BuyerProductXp = any, PriceScheduleXp = any>(productID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerProduct<BuyerProductXp, PriceScheduleXp>>;
    GetProduct<BuyerProductXp = any, PriceScheduleXp = any>(productID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerProduct>>;
    GetProduct<BuyerProductXp = any, PriceScheduleXp = any>(productID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerProduct>>;
    /**
     *
     *
     * @param promotionID ID of the promotion.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetPromotion<PromotionXp = any>(promotionID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<Promotion<PromotionXp>>;
    GetPromotion<PromotionXp = any>(promotionID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<Promotion>>;
    GetPromotion<PromotionXp = any>(promotionID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<Promotion>>;
    /**
     *
     *
     * @param shipmentID ID of the shipment.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetShipment<ShipmentXp = any, AddressXp = any>(shipmentID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<Shipment<ShipmentXp, AddressXp>>;
    GetShipment<ShipmentXp = any, AddressXp = any>(shipmentID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<Shipment>>;
    GetShipment<ShipmentXp = any, AddressXp = any>(shipmentID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<Shipment>>;
    /**
     *
     *
     * @param productID ID of the product.
     * @param specID ID of the spec.
     * @param options.catalogID ID of the catalog.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetSpec<SpecXp = any, SpecOptionXp = any>(productID: string, specID: string, options?: {
        catalogID?: string;
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<Spec<SpecXp, SpecOptionXp>>;
    GetSpec<SpecXp = any, SpecOptionXp = any>(productID: string, specID: string, options?: {
        catalogID?: string;
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<Spec>>;
    GetSpec<SpecXp = any, SpecOptionXp = any>(productID: string, specID: string, options?: {
        catalogID?: string;
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<Spec>>;
    /**
     *
     *
     * @param spendingAccountID ID of the spending account.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    GetSpendingAccount<SpendingAccountXp = any>(spendingAccountID: string, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<SpendingAccount<SpendingAccountXp>>;
    GetSpendingAccount<SpendingAccountXp = any>(spendingAccountID: string, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<SpendingAccount>>;
    GetSpendingAccount<SpendingAccountXp = any>(spendingAccountID: string, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<SpendingAccount>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListAddresses<BuyerAddressXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListBuyerAddress<BuyerAddressXp>>;
    ListAddresses<BuyerAddressXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListBuyerAddress>>;
    ListAddresses<BuyerAddressXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListBuyerAddress>>;
    /**
     *
     *
     * @param options.from Lower bound of date range that the order was created (if outgoing) or submitted (if incoming).
     * @param options.to Upper bound of date range that the order was created (if outgoing) or submitted (if incoming).
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListApprovableOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListOrder<OrderXp, UserXp, AddressXp>>;
    ListApprovableOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListOrder>>;
    ListApprovableOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListOrder>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListCatalogs<CatalogXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListCatalog<CatalogXp>>;
    ListCatalogs<CatalogXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListCatalog>>;
    ListCatalogs<CatalogXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListCatalog>>;
    /**
     *
     *
     * @param options.depth Indicates how deep down the hierarchy to return results. Valid values are a number of 1 or greater, or &#39;all&#39;. Relative to ParentID if specified. Default is 1.
     * @param options.catalogID ID of the catalog.
     * @param options.productID ID of the product.
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListCategories<CategoryXp = any>(options?: {
        depth?: string;
        catalogID?: string;
        productID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListCategory<CategoryXp>>;
    ListCategories<CategoryXp = any>(options?: {
        depth?: string;
        catalogID?: string;
        productID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListCategory>>;
    ListCategories<CategoryXp = any>(options?: {
        depth?: string;
        catalogID?: string;
        productID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListCategory>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListCostCenters<CostCenterXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListCostCenter<CostCenterXp>>;
    ListCostCenters<CostCenterXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListCostCenter>>;
    ListCostCenters<CostCenterXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListCostCenter>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListCreditCards<BuyerCreditCardXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListBuyerCreditCard<BuyerCreditCardXp>>;
    ListCreditCards<BuyerCreditCardXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListBuyerCreditCard>>;
    ListCreditCards<BuyerCreditCardXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListBuyerCreditCard>>;
    /**
     *
     *
     * @param options.from Lower bound of date range that the order was created (if outgoing) or submitted (if incoming).
     * @param options.to Upper bound of date range that the order was created (if outgoing) or submitted (if incoming).
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListOrder<OrderXp, UserXp, AddressXp>>;
    ListOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListOrder>>;
    ListOrders<OrderXp = any, UserXp = any, AddressXp = any>(options?: {
        from?: string;
        to?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListOrder>>;
    /**
     *
     *
     * @param options.catalogID ID of the catalog.
     * @param options.categoryID ID of the category.
     * @param options.depth Indicates how deep down the category hierarchy to return results. Valid values are a number of 1 or greater, or &#39;all&#39;. Relative to CategoryID if specified, otherwise top level of the Catalog. Default is &#39;all&#39;.
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.searchType Search type of the product. Possible values: AnyTerm, AllTermsAnyField, AllTermsSameField, ExactPhrase, ExactPhrasePrefix.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListProducts<BuyerProductXp = any, PriceScheduleXp = any, ListFacetXp = any>(options?: {
        catalogID?: string;
        categoryID?: string;
        depth?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        searchType?: string;
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListBuyerProduct<BuyerProductXp, PriceScheduleXp, ListFacetXp>>;
    ListProducts<BuyerProductXp = any, PriceScheduleXp = any, ListFacetXp = any>(options?: {
        catalogID?: string;
        categoryID?: string;
        depth?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        searchType?: string;
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListBuyerProduct>>;
    ListProducts<BuyerProductXp = any, PriceScheduleXp = any, ListFacetXp = any>(options?: {
        catalogID?: string;
        categoryID?: string;
        depth?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        searchType?: string;
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListBuyerProduct>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListPromotions<PromotionXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListPromotion<PromotionXp>>;
    ListPromotions<PromotionXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListPromotion>>;
    ListPromotions<PromotionXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListPromotion>>;
    /**
     *
     *
     * @param shipmentID ID of the shipment.
     * @param options.orderID ID of the order.
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListShipmentItems<ShipmentItemXp = any, ProductXp = any, LineItemVariantXp = any>(shipmentID: string, options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListShipmentItem<ShipmentItemXp, ProductXp, LineItemVariantXp>>;
    ListShipmentItems<ShipmentItemXp = any, ProductXp = any, LineItemVariantXp = any>(shipmentID: string, options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListShipmentItem>>;
    ListShipmentItems<ShipmentItemXp = any, ProductXp = any, LineItemVariantXp = any>(shipmentID: string, options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListShipmentItem>>;
    /**
     *
     *
     * @param options.orderID ID of the order.
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListShipments<ShipmentXp = any, AddressXp = any>(options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListShipment<ShipmentXp, AddressXp>>;
    ListShipments<ShipmentXp = any, AddressXp = any>(options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListShipment>>;
    ListShipments<ShipmentXp = any, AddressXp = any>(options?: {
        orderID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListShipment>>;
    /**
     *
     *
     * @param productID ID of the product.
     * @param options.catalogID ID of the catalog.
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListSpecs<SpecXp = any, SpecOptionXp = any>(productID: string, options?: {
        catalogID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListSpec<SpecXp, SpecOptionXp>>;
    ListSpecs<SpecXp = any, SpecOptionXp = any>(productID: string, options?: {
        catalogID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListSpec>>;
    ListSpecs<SpecXp = any, SpecOptionXp = any>(productID: string, options?: {
        catalogID?: string;
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListSpec>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListSpendingAccounts<SpendingAccountXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListSpendingAccount<SpendingAccountXp>>;
    ListSpendingAccounts<SpendingAccountXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListSpendingAccount>>;
    ListSpendingAccounts<SpendingAccountXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListSpendingAccount>>;
    /**
     *
     *
     * @param options.search Word or phrase to search for.
     * @param options.searchOn Comma-delimited list of fields to search on.
     * @param options.sortBy Comma-delimited list of fields to sort by.
     * @param options.page Page of results to return. Default: 1
     * @param options.pageSize Number of results to return per page. Default: 20, max: 100.
     * @param options.filters Any additional key/value pairs passed in the query string are interpretted as filters. Valid keys are top-level properties of the returned model or &#39;xp.???&#39;
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ListUserGroups<UserGroupXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<ListUserGroup<UserGroupXp>>;
    ListUserGroups<UserGroupXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<ListUserGroup>>;
    ListUserGroups<UserGroupXp = any>(options?: {
        search?: string;
        searchOn?: string;
        sortBy?: string;
        page?: number;
        pageSize?: number;
        filters?: {
            [key: string]: string | Array<string>;
        };
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<ListUserGroup>>;
    /**
     *
     *
     * @param partialMeUser
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    Patch<MeUserXp = any>(partialMeUser: MeUser, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<MeUser<MeUserXp>>;
    Patch<MeUserXp = any>(partialMeUser: MeUser, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<MeUser>>;
    Patch<MeUserXp = any>(partialMeUser: MeUser, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<MeUser>>;
    /**
     *
     *
     * @param addressID ID of the address.
     * @param partialBuyerAddress
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    PatchAddress(addressID: string, partialBuyerAddress: BuyerAddress, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    PatchAddress(addressID: string, partialBuyerAddress: BuyerAddress, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    PatchAddress(addressID: string, partialBuyerAddress: BuyerAddress, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     *
     *
     * @param creditcardID ID of the creditcard.
     * @param partialBuyerCreditCard
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    PatchCreditCard(creditcardID: string, partialBuyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    PatchCreditCard(creditcardID: string, partialBuyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    PatchCreditCard(creditcardID: string, partialBuyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     *
     *
     * @param anonUserToken Anon user token of the user.
     * @param meUser
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    Register(anonUserToken: string, meUser: MeUser, options?: {
        anonUserToken?: string;
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<AccessTokenBasic>;
    Register(anonUserToken: string, meUser: MeUser, options?: {
        anonUserToken?: string;
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<AccessTokenBasic>>;
    Register(anonUserToken: string, meUser: MeUser, options?: {
        anonUserToken?: string;
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<AccessTokenBasic>>;
    /**
     *
     *
     * @param tokenPasswordReset
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    ResetPasswordByToken(tokenPasswordReset: TokenPasswordReset, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    ResetPasswordByToken(tokenPasswordReset: TokenPasswordReset, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    ResetPasswordByToken(tokenPasswordReset: TokenPasswordReset, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     *
     *
     * @param meUser
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    Save<MeUserXp = any>(meUser: MeUser, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<MeUser<MeUserXp>>;
    Save<MeUserXp = any>(meUser: MeUser, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<MeUser>>;
    Save<MeUserXp = any>(meUser: MeUser, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<MeUser>>;
    /**
     *
     *
     * @param addressID ID of the address.
     * @param buyerAddress
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    SaveAddress<BuyerAddressXp = any>(addressID: string, buyerAddress: BuyerAddress, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerAddress<BuyerAddressXp>>;
    SaveAddress<BuyerAddressXp = any>(addressID: string, buyerAddress: BuyerAddress, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerAddress>>;
    SaveAddress<BuyerAddressXp = any>(addressID: string, buyerAddress: BuyerAddress, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerAddress>>;
    /**
     *
     *
     * @param creditcardID ID of the creditcard.
     * @param buyerCreditCard
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    SaveCreditCard<BuyerCreditCardXp = any>(creditcardID: string, buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<BuyerCreditCard<BuyerCreditCardXp>>;
    SaveCreditCard<BuyerCreditCardXp = any>(creditcardID: string, buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<BuyerCreditCard>>;
    SaveCreditCard<BuyerCreditCardXp = any>(creditcardID: string, buyerCreditCard: BuyerCreditCard, options?: {
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<BuyerCreditCard>>;
    /**
     *
     *
     * @param anonUserToken Anon user token of the me.
     * @param options.observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param options.reportProgress flag to report request and response progress.
     */
    TransferAnonUserOrder(anonUserToken: string, options?: {
        anonUserToken?: string;
        observe?: 'body';
        reportProgress?: boolean;
    }): Observable<any>;
    TransferAnonUserOrder(anonUserToken: string, options?: {
        anonUserToken?: string;
        observe?: 'response';
        reportProgress?: boolean;
    }): Observable<HttpResponse<any>>;
    TransferAnonUserOrder(anonUserToken: string, options?: {
        anonUserToken?: string;
        observe?: 'events';
        reportProgress?: boolean;
    }): Observable<HttpEvent<any>>;
}
