import { Contract, ContractInterface, Wallet } from 'ethers';
import { NonceManager } from '@ethersproject/experimental';
import { CustomJsonRpcProvider } from '../rpc/rpc.service';
import { EventName } from '../types';
export declare enum ContractName {
    AttestationBatchMaker = "AttestationBatchMaker",
    AttestationBatchMakerV2 = "AttestationBatchMakerV2",
    AttestationBatchMakerV3 = "AttestationBatchMakerV3",
    AttestationDLQ = "AttestationDLQFactory",
    AttestationsVerifierProofs = "AttestationsVerifierProofs",
    avpBatchSubmitter = "avpBatchSubmitter",
    ClaimerGMP = "ClaimerGMP",
    ClaimerGMPV2 = "ClaimerGMPV2",
    AttestersPortal = "AttestersPortal",
    BRN = "BRN",
    BRN2TRN = "BRN2TRN",
    BRNBalanceGetter = "BRNBalanceGetter",
    BRNRewards = "BRNRewards",
    BiddingBook = "BiddingBook",
    PendingBook = "PendingBook",
    ConfirmationBook = "ConfirmationBook",
    ERC20Mock = "ERC20Mock",
    EscrowGMP = "EscrowGMP",
    EscrowOrder = "EscrowOrder",
    EscrowOrderBook = "EscrowOrderBook",
    OpenMarketPricer = "OpenMarketPricer",
    OrderBook = "OrderBook",
    RemoteOrder = "RemoteOrder",
    RemoteOrderV2 = "RemoteOrderV2",
    ParachainRemoteOrder = "ParachainRemoteOrder",
    PayloadGetter = "PayloadGetter",
    BonusesL3 = "BonusesL3",
    SegmentBook = "SegmentBook",
    SingleAttestationBook = "SingleAttestationBook",
    SingleAttestationBookV2 = "SingleAttestationBookV2",
    SingleAttestationBookV3 = "SingleAttestationBookV3",
    SingleAttestationBookV4 = "SingleAttestationBookV4",
    LongRangeAttestationsBook = "LongRangeAttestationsBook",
    PendingAttestationsBook = "PendingAttestationsBook",
    TRN = "TRN",
    TRNInflation = "TRNInflation",
    TRNInflationRewards = "TRNInflationRewards",
    XDNS = "XDNS",
    t3BTC = "t3BTC",
    t3DOT = "t3DOT",
    t3SOL = "t3SOL",
    t3USD = "t3USD",
    t3TIA = "t3TIA",
    t3ETH = "t3ETH",
    t3SEI = "t3SEI",
    t3MON = "t3MON",
    tERC20 = "tERC20"
}
export type ContractFileNameType = {
    [K in ContractName]: string;
};
export declare const ContractFileName: ContractFileNameType;
export declare enum ConfigContractName {
    BRN = "BRN",
    BRN2TRN = "BRN2TRN",
    BRNRewards = "BRNRewards",
    BRNBalanceGetter = "BRNBalanceGetter",
    DistributionAttempt = "DistributionAttempt",
    ERC20Mock = "ERC20Mock",
    TRN = "TRN",
    TRNInflation = "TRNInflation",
    TRNInflationRewards = "TRNInflationRewards",
    XDNS = "XDNS",
    attestationBatchMaker = "attestationBatchMaker",
    avpBatchSubmitter = "avpBatchSubmitter",
    attestationBatchMakerV2 = "attestationBatchMakerV2",
    attestationBatchMakerV3 = "attestationBatchMakerV3",
    attestationDLQ = "attestationDLQ",
    attesters = "attesters",
    attestersPortal = "attestersPortal",
    pendingBook = "pendingBook",
    biddingBook = "biddingBook",
    claimerGMP = "claimerGMP",
    claimerGMPV2 = "claimerGMPV2",
    confirmationBook = "confirmationBook",
    escrowGMP = "escrowGMP",
    escrowOrder = "escrowOrder",
    escrowOrderBook = "escrowOrderBook",
    localExchange = "localExchange",
    bonusesL3 = "bonusesL3",
    openMarketPricer = "openMarketPricer",
    orderBook = "orderBook",
    payloadGetter = "payloadGetter",
    remoteOrder = "remoteOrder",
    remoteOrderV2 = "remoteOrderV2",
    segmentBook = "segmentBook",
    singleAttestationBook = "singleAttestationBook",
    singleAttestationBookV2 = "singleAttestationBookV2",
    singleAttestationBookV3 = "singleAttestationBookV3",
    pendingAttestationsBook = "pendingAttestationsBook",
    singleAttestationBookV4 = "singleAttestationBookV4",
    longRangeAttestationsBook = "longRangeAttestationsBook",
    t3BTC = "t3BTC",
    t3DOT = "t3DOT",
    t3SOL = "t3SOL",
    t3USD = "t3USD",
    tERC20 = "tERC20",
    t3ETH = "t3ETH",
    t3TIA = "t3TIA",
    t3MON = "t3MON",
    t3SEI = "t3SEI"
}
export declare const EventNameToContractNameMap: {
    [eventName in EventName]: ConfigContractName;
};
/**
 * Initializes a contract instance
 *
 * @param {ContractName}  contractName
 * @param {string}  address
 * @param {Wallet | CustomJsonRpcProvider}  signer
 *
 * @returns {Contract}
 */
export declare function initContract(contractName: ContractName, address: string, signer: Wallet | CustomJsonRpcProvider | NonceManager): Contract;
/**
 * Load the ABI of a contract, parse it as JSON and return.
 * Note: file of a contract can have different case than a contract
 *
 * @param {string}  fileName  The Solidity contract file name
 * @param {string}  contractName  The ABI file name
 *
 * @returns {ContractInterface}
 */
export declare function getAbi(fileName: string | ContractFileNameType, contractName: ContractName): ContractInterface;
export declare function isKnownOrderId(orderId: string, remoteOrderContract: Contract): Promise<boolean>;
//# sourceMappingURL=contract.d.ts.map