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;
};
export declare function issueCertificates(certificateInfo: CertificateInfoInBatch[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
export declare function getIdsFromBatchIssuanceTx(txHash: string, { web3, issuer, registry }: IBlockchainProperties): Promise<Certificate['id'][]>;
export declare function transferCertificates(certificateBatch: BatchCertificateTransfer[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
export declare function claimCertificates(certificateBatch: BatchCertificateClaim[], blockchainProperties: IBlockchainProperties): Promise<ContractTransaction>;
