import { BaseCoreSDK } from "./../mixins/base-core-sdk";
import * as subgraph from "../subgraph";
import { OfferOrSellerMetadata } from "..";
import { getProductWithVariantsFromOfferId } from "./subgraph";
import { Web3LibAdapter } from "@bosonprotocol/common";
export declare class MetadataMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
    /**
     * Stores supported offer metadata via the MetadataStorage instance which was passed in
     * at construction.
     * @param metadata - Offer metadata of type `BASE` or `PRODUCT_V1`.
     * @returns Metadata hash / identifier.
     */
    storeMetadata(metadata: OfferOrSellerMetadata): Promise<string>;
    /**
     * Returns supported offer metadata from passed in `MetadataStorage` instance.
     * @param metadataHashOrUri - Metadata hash or uri that can be handled by the
     * storage instance.
     * @returns Offer metadata.
     */
    getMetadata(metadataHashOrUri: string): Promise<OfferOrSellerMetadata>;
    /**
     * Returns `BASE` type offer metadata entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns BaseMetadataEntities from subgraph.
     */
    getBaseMetadataEntities(queryVars?: subgraph.GetBaseMetadataEntitiesQueryQueryVariables): Promise<subgraph.BaseMetadataEntityFieldsFragment[]>;
    /**
     * Returns `PRODUCT_V1` type offer metadata entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns ProductV1MetadataEntities from subgraph.
     */
    getProductV1MetadataEntities(queryVars?: subgraph.GetProductV1MetadataEntitiesQueryQueryVariables): Promise<subgraph.ProductV1MetadataEntityFieldsFragment[]>;
    /**
     * Returns `BUNDLE` type offer metadata entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns BundleMetadataEntities from subgraph.
     */
    getBundleMetadataEntities(queryVars?: subgraph.GetBundleMetadataEntitiesQueryQueryVariables): Promise<subgraph.BundleMetadataEntityFieldsFragment[]>;
    getProductV1Products(queryVars?: subgraph.GetProductV1ProductsQueryQueryVariables): Promise<subgraph.BaseProductV1ProductFieldsFragment[]>;
    getProductWithVariants(sellerId: string, productUuid: string): Promise<{
        product: subgraph.BaseProductV1ProductFieldsFragment;
        bundleSets: Map<string, {
            bundle: subgraph.BundleMetadataEntityFieldsFragment;
            variations: subgraph.ProductV1Variation[];
        }[]>;
        variants: Array<{
            offer: subgraph.OfferFieldsFragment;
            variations: Array<subgraph.ProductV1Variation>;
        }>;
    } | null>;
    getProductWithVariantsFromOfferId(offerId: string): ReturnType<typeof getProductWithVariantsFromOfferId>;
    getAllProductsWithVariants(queryVars?: subgraph.GetProductV1ProductsWithVariantsQueryQueryVariables): Promise<subgraph.BaseProductV1ProductWithVariantsFieldsFragment[]>;
    getAllProductsWithNotVoidedVariants(queryVars?: subgraph.GetAllProductsWithNotVoidedVariantsQueryQueryVariables): Promise<subgraph.BaseProductV1ProductWithNotVoidedVariantsFieldsFragment[]>;
}
//# sourceMappingURL=mixin.d.ts.map