import { Web3LibAdapter, MetadataStorage, MetaTxConfig, ContractAddresses, Lens, ErrorFragment } from "@bosonprotocol/common";
import { TokenInfoManager } from "../utils/tokenInfoManager";
export declare class BaseCoreSDK<T extends Web3LibAdapter = Web3LibAdapter> {
    protected _web3Lib: T;
    protected _metadataStorage?: MetadataStorage;
    protected _theGraphStorage?: MetadataStorage;
    protected _subgraphUrl: string;
    protected _protocolDiamond: string;
    protected _chainId: number;
    protected _tokenInfoManager: TokenInfoManager;
    protected _errorsMap: Map<string, ErrorFragment>;
    protected _metaTxConfig?: Partial<MetaTxConfig>;
    protected _lens?: Lens;
    protected _contracts?: ContractAddresses;
    protected _uuid: string;
    protected _getTxExplorerUrl?: (txHash?: string, isAddress?: boolean) => string;
    /**
     * Creates an instance of `BaseCoreSDK`
     * @param args - Constructor args
     */
    constructor(opts: {
        web3Lib: T;
        subgraphUrl: string;
        protocolDiamond: string;
        metadataStorage?: MetadataStorage;
        theGraphStorage?: MetadataStorage;
        chainId: number;
        metaTx?: Partial<MetaTxConfig>;
        lens?: Lens;
        contracts?: ContractAddresses;
        getTxExplorerUrl?: (txHash?: string, isAddress?: boolean) => string;
    });
    protected assertAndGetMetaTxConfig(overrides?: Partial<{
        contractAddress: string;
        metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & {
            apiId: string;
        }>;
        metaTransactionMethod: string;
    }>): {
        metaTxRelayerUrl: string;
        metaTxApiId: string;
        metaTxApiKey: string;
        contractAddress: string;
    };
    protected assertAndGetMetaTxConfig2(overrides?: Partial<{
        verifierAddress: string;
        metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & {
            apiId: string;
        }>;
        metaTransactionMethod: string;
    }>): Promise<{
        metaTxRelayerUrl: string;
        metaTxApiId: string;
        metaTxApiKey: string;
        contractAddress: string;
    }>;
}
export declare function applyMixins(derivedCtor: typeof BaseCoreSDK<Web3LibAdapter>, constructors: (typeof BaseCoreSDK<Web3LibAdapter>)[]): void;
//# sourceMappingURL=base-core-sdk.d.ts.map