import RequestClientWrapper from '../../RequestClientWrapper';
import Variant from '../model/Variant';
import VariantSearchDetails from '../model/VariantSearchDetails';
import VariantsRequest from '../model/VariantsRequest';
import VariantsRequestByProductId from '../model/VariantsRequestByProductId';
import VariantsSearchRequestByProductFilterId from '../model/VariantsSearchRequestByProductFilterId';
import VariantsSearchRequestBySku from '../model/VariantsSearchRequestBySku';
import VariantsSearchRequestByUpc from '../model/VariantsSearchRequestByUpc';
import VariantsSearchRequestByVendor from '../model/VariantsSearchRequestByVendor';
import VariantsSearchRequestByTag from '../model/VariantsSearchRequestByTag';
import VariantsPage from '../model/VariantsPage';
export default class VariantsService {
    private readonly client;
    constructor(client: RequestClientWrapper);
    get(variantsRequest: VariantsRequest): Promise<Variant>;
    get(variantsRequestByProductId: VariantsRequestByProductId): Promise<Variant[]>;
    search(variantsSearchRequestByProductFilterId: VariantsSearchRequestByProductFilterId): Promise<VariantSearchDetails[]>;
    search(variantsSearchRequestBySku: VariantsSearchRequestBySku): Promise<VariantSearchDetails[]>;
    search(variantsSearchRequestByUpc: VariantsSearchRequestByUpc): Promise<VariantSearchDetails[]>;
    search(variantsSearchRequestByVendor: VariantsSearchRequestByVendor): Promise<VariantSearchDetails[]>;
    search(variantsSearchRequestByTag: VariantsSearchRequestByTag): Promise<VariantSearchDetails[]>;
    getPage(variantsSearchRequestByProductFilterId: VariantsSearchRequestByProductFilterId): Promise<VariantsPage>;
    private getVariantSearchResultsByRequest;
    private getVariantSearchResultsByProductFilterId;
    private getVariantByRequest;
    private getVariantsByRequest;
    private mapVariantPromise;
    private mapVariantsPromise;
    private mapVariantsSearchPromise;
    private filterOutNonExactMatches;
    private formatVariant;
    private formatVariantSearchDetails;
}
