import './types';
import { HttpService } from '@nestjs/axios';
import { OnApplicationBootstrap } from '@nestjs/common';
import { Channel, ChannelService, CollectionService, ConfigArgService, ConfigService, EntityHydrator, EventBus, FacetService, FacetValueService, ID, JobQueueService, LanguageCode, ProcessContext, Product, ProductService, ProductVariant, ProductVariantService, RequestContext, SearchService, StockLocationService, StockMovementService, TaxCategoryService, TransactionalConnection, TranslatableSaver } from '@vendure/core';
import { RemoteProduct } from './types';
import { SchedulerRegistry } from '@nestjs/schedule';
import { ProductImportPluginOptions } from './product-import.plugin';
import { Brand, BrandService } from 'vendure-brands-plugin';
export declare const NEW_VARIANT_STOCK_VALUE = 9999;
export declare class ProductImportService implements OnApplicationBootstrap {
    private hydrator;
    private httpService;
    private channelService;
    private productVariantService;
    private configArgService;
    private facetService;
    private stockLocationService;
    private facetValueService;
    private translatableSaver;
    private searchService;
    private productService;
    private taxCategoryService;
    private connection;
    private eventBus;
    private processContext;
    private collectionService;
    private schedulerRegistry;
    private jobQueueService;
    private stockMovementService;
    private brandService;
    private readonly options;
    private configService;
    private jobQueue;
    constructor(hydrator: EntityHydrator, httpService: HttpService, channelService: ChannelService, productVariantService: ProductVariantService, configArgService: ConfigArgService, facetService: FacetService, stockLocationService: StockLocationService, facetValueService: FacetValueService, translatableSaver: TranslatableSaver, searchService: SearchService, productService: ProductService, taxCategoryService: TaxCategoryService, connection: TransactionalConnection, eventBus: EventBus, processContext: ProcessContext, collectionService: CollectionService, schedulerRegistry: SchedulerRegistry, jobQueueService: JobQueueService, stockMovementService: StockMovementService, brandService: BrandService, options: ProductImportPluginOptions, configService: ConfigService);
    onApplicationBootstrap(): Promise<void>;
    importProducts(): Promise<void>;
    getExistingRemoteProducts(ctx: RequestContext, webHookIds: string[]): Promise<Product[]>;
    getOrCreateBrand(ctx: RequestContext, brandName: string): Promise<Brand>;
    updateProduct(ctx: RequestContext, vendureProduct: Product, languageCode: LanguageCode, remoteProduct: RemoteProduct): Promise<void>;
    updateProductVariantName(ctx: RequestContext, defaultVariant: ProductVariant, languageCode: LanguageCode, remoteProductName: string): Promise<void>;
    createProduct(ctx: RequestContext, newProduct: RemoteProduct, languageCode: LanguageCode): Promise<import("@vendure/core").Translated<Product> | undefined>;
    updateDefaultVariant(ctx: RequestContext, vendureProduct: Product, defaultChannel: Channel, remoteProduct: RemoteProduct): Promise<ProductVariant>;
    createProductVariant(ctx: RequestContext, productId: ID, remoteProduct: RemoteProduct, languageCode: LanguageCode): Promise<ProductVariant>;
    updateProductCollection(ctx: RequestContext, defautVariant: ProductVariant, remoteProductCollection: string, languageCode: LanguageCode): Promise<void>;
    updateProductFacet(ctx: RequestContext, vendureProduct: Product, remoteProduct: RemoteProduct, languageCode: LanguageCode): Promise<void>;
}
