import { IncomingMessage } from '../requestCompat';
import { CreateCategoryModel } from '../model/createCategoryModel';
import { CreateProductModel } from '../model/createProductModel';
import { CreateUpdateBatchCategory } from '../model/createUpdateBatchCategory';
import { CreateUpdateBatchCategoryModel } from '../model/createUpdateBatchCategoryModel';
import { CreateUpdateBatchProducts } from '../model/createUpdateBatchProducts';
import { CreateUpdateBatchProductsModel } from '../model/createUpdateBatchProductsModel';
import { CreateUpdateCategory } from '../model/createUpdateCategory';
import { CreateUpdateProduct } from '../model/createUpdateProduct';
import { EcommerceAttributionMetricsConversionSourceConversionSourceIdGet200Response } from '../model/ecommerceAttributionMetricsConversionSourceConversionSourceIdGet200Response';
import { EcommerceAttributionMetricsGet200Response } from '../model/ecommerceAttributionMetricsGet200Response';
import { EcommerceAttributionProductsConversionSourceConversionSourceIdGet200Response } from '../model/ecommerceAttributionProductsConversionSourceConversionSourceIdGet200Response';
import { EcommerceConfigDisplayCurrencyGet200Response } from '../model/ecommerceConfigDisplayCurrencyGet200Response';
import { GetCategories } from '../model/getCategories';
import { GetCategoryDetails } from '../model/getCategoryDetails';
import { GetOrders } from '../model/getOrders';
import { GetProductDetails } from '../model/getProductDetails';
import { GetProducts } from '../model/getProducts';
import { Order } from '../model/order';
import { OrderBatch } from '../model/orderBatch';
import { Authentication, Interceptor } from '../model/models';
import { ApiKeyAuth } from '../model/models';
export declare enum EcommerceApiApiKeys {
    apiKey = 0,
    partnerKey = 1
}
export declare class EcommerceApi {
    protected _basePath: string;
    protected _defaultHeaders: any;
    protected _useQuerystring: boolean;
    protected authentications: {
        default: Authentication;
        apiKey: ApiKeyAuth;
        partnerKey: ApiKeyAuth;
    };
    protected interceptors: Interceptor[];
    constructor(basePath?: string);
    set useQuerystring(value: boolean);
    set basePath(basePath: string);
    set defaultHeaders(defaultHeaders: any);
    get defaultHeaders(): any;
    get basePath(): string;
    setDefaultAuthentication(auth: Authentication): void;
    setApiKey(key: EcommerceApiApiKeys, value: string): void;
    addInterceptor(interceptor: Interceptor): void;
    createBatchOrder(orderBatch: OrderBatch, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    createOrder(order: Order, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    createUpdateBatchCategory(createUpdateBatchCategory: CreateUpdateBatchCategory, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreateUpdateBatchCategoryModel;
    }>;
    createUpdateBatchProducts(createUpdateBatchProducts: CreateUpdateBatchProducts, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreateUpdateBatchProductsModel;
    }>;
    createUpdateCategory(createUpdateCategory: CreateUpdateCategory, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreateCategoryModel;
    }>;
    createUpdateProduct(createUpdateProduct: CreateUpdateProduct, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreateProductModel;
    }>;
    ecommerceActivatePost(options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    ecommerceAttributionMetricsConversionSourceConversionSourceIdGet(conversionSource: 'email_campaign', conversionSourceId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: EcommerceAttributionMetricsConversionSourceConversionSourceIdGet200Response;
    }>;
    ecommerceAttributionMetricsGet(periodFrom?: Date, periodTo?: Date, emailCampaignId?: Array<number>, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: EcommerceAttributionMetricsGet200Response;
    }>;
    ecommerceAttributionProductsConversionSourceConversionSourceIdGet(conversionSource: 'email_campaign', conversionSourceId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: EcommerceAttributionProductsConversionSourceConversionSourceIdGet200Response;
    }>;
    ecommerceConfigDisplayCurrencyGet(options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: EcommerceConfigDisplayCurrencyGet200Response;
    }>;
    getCategories(limit?: number, offset?: number, sort?: 'asc' | 'desc', ids?: Array<string>, name?: string, modifiedSince?: string, createdSince?: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetCategories;
    }>;
    getCategoryInfo(id: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetCategoryDetails;
    }>;
    getOrders(limit?: number, offset?: number, sort?: 'asc' | 'desc', modifiedSince?: string, createdSince?: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetOrders;
    }>;
    getProductInfo(id: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetProductDetails;
    }>;
    getProducts(limit?: number, offset?: number, sort?: 'asc' | 'desc', ids?: Array<string>, name?: string, priceLte?: number, priceGte?: number, priceLt?: number, priceGt?: number, priceEq?: number, priceNe?: number, categories?: Array<string>, modifiedSince?: string, createdSince?: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetProducts;
    }>;
    setConfigDisplayCurrency(setConfigDisplayCurrency: EcommerceConfigDisplayCurrencyGet200Response, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: EcommerceConfigDisplayCurrencyGet200Response;
    }>;
}
