/// <reference types="react" />
export * from '@minteeble/mintee-button';

/**
 * Single method mapping interface model
 */
interface IParamMappingItem {
    /**
     * Method name, to be found inside ABI object
     */
    parameterName: string;
    /**
     * Specifies method value. Can be placeholder (eg. "MINT_AMOUNT"), or immediate value
     */
    value: string;
}
declare class ParamMappingItem implements IParamMappingItem {
    parameterName: string;
    value: string;
    constructor();
}
/**
 * Interface model representing the custom method options
 */
interface ICustomMintOptions {
    /**
     * Custom method name to be used for mint
     */
    methodName: string;
    /**
     * Parameters mappings for custom method
     */
    mappings?: Array<IParamMappingItem>;
}
declare class CustomMintOptions implements ICustomMintOptions {
    methodName: string;
    mappings?: Array<ParamMappingItem>;
    constructor();
}
/**
 * Props model for Minteeble Mint Widget component
 */
interface MintWidgetProps {
    /**
     * Specifies if "Powered by Minteeble" label should be shown or not
     */
    showPoweredBy?: boolean;
    /**
     * Network chain name (goerli, mainnet, etc.)
     */
    chainName: string;
    /**
     * Minteeble collection ID
     */
    collectionId: string;
    /**
     * optional ERC1155 token id
     */
    erc1155Id?: string;
    /**
     * Options for hendling custom mint method
     */
    customMintMethodOptions?: CustomMintOptions;
    /**
     * If provided, specifies the url to be redirected to after mint completion
     */
    redirectUrl?: string;
    /**
     * Specifies a custom price in wei to be sent for the mint transactions.
     * By default the mint price is read from collection smart contract
     */
    customPrice?: string;
    /**
     * Discount to be applied to the final price.
     */
    discountPercentage?: number;
    /**
     * NFTs amount to be minted
     */
    amount?: number;
}

/**
 * Minteeble Mint Widget
 *
 * @param props Widget props
 * @returns Mint Widget JSX Element
 */
declare const MintWidget: (props: MintWidgetProps) => JSX.Element;

export { CustomMintOptions, ICustomMintOptions, IParamMappingItem, MintWidget, MintWidgetProps, ParamMappingItem };
