import { BigNumber, ContractTransaction } from 'ethers';
import { IBlockchainProperties } from './BlockchainProperties';
import { Certificate, IClaimData, IData } from './Certificate';
export interface CertificateInfoInBatch extends IData {
    to: string;
    amount: BigNumber;
}
export declare type BatchCertificateTransfer = {
    id: number;
    to: string;
    from?: string;
    amount?: BigNumber;
};
export declare type BatchCertificateClaim = Omit<BatchCertificateTransfer, 'to'> & {
    claimData: IClaimData;
    to?: string;
};
/**
 *
 *
 * @description Uses Issuer contract to allow issuer to batch issue Certificates
 *
 */
export declare function issueCertificates(certificateInfo: CertificateInfoInBatch[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
/**
    *
    *
    * @description Returns array Certificate Ids created in a given transaction hash
    *
    */
export declare function getIdsFromBatchIssuanceTx(txHash: string, { web3, issuer, registry }: IBlockchainProperties): Promise<Certificate['id'][]>;
/**
    *
    *
    * @description Uses Registry Extended contract to allow  transfer of multiple certififactes
    *
    */
export declare function transferCertificates(certificateBatch: BatchCertificateTransfer[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
/**
    *
    *
    * @description Uses Registry Extended contract to allow claiming of multiple certififactes
    *
    */
export declare function claimCertificates(certificateBatch: BatchCertificateClaim[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
