import * as anchor from '@project-serum/anchor';
import { UnlocLoan } from '../types/unloc_loan';
import { Connection, Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js';
import { ArweaveMetadata, IMasterEdition, IMetadata, OnChainMetadata } from './IOfferData';
export declare let program: anchor.Program<UnlocLoan>;
export declare let programProvider: anchor.AnchorProvider;
export declare let programId: anchor.web3.PublicKey;
export declare const initLoanProgram: (wallet: any, connection?: anchor.web3.Connection, pid?: anchor.web3.PublicKey) => void;
export declare const getLoanGlobalState: () => Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{
    name: "globalState";
    type: {
        kind: "struct";
        fields: [{
            name: "superOwner";
            type: "publicKey";
        }, {
            name: "treasuryWallet";
            type: "publicKey";
        }, {
            name: "accruedInterestNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "expireLoanDuration";
            type: "u64";
        }, {
            name: "denominator";
            type: "u64";
        }, {
            name: "rewardPerSol";
            type: "u64";
        }, {
            name: "rewardPerUsdc";
            type: "u64";
        }, {
            name: "lenderRewardsPercentage";
            type: "u64";
        }, {
            name: "unlocStakingPid";
            type: "publicKey";
        }, {
            name: "unlocStakingPoolId";
            type: "publicKey";
        }, {
            name: "votingPid";
            type: "publicKey";
        }, {
            name: "currentVotingNum";
            type: "u64";
        }, {
            name: "tokenMetadataPid";
            type: "publicKey";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 15];
            };
        }];
    };
} | {
    name: "offer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "subOfferCount";
            type: "u64";
        }, {
            name: "startSubOfferNum";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "subOffer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "offerMint";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "offer";
            type: "publicKey";
        }, {
            name: "subOfferNumber";
            type: "u64";
        }, {
            name: "lender";
            type: "publicKey";
        }, {
            name: "offerVault";
            type: "publicKey";
        }, {
            name: "offerAmount";
            type: "u64";
        }, {
            name: "repaidAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }, {
            name: "loanStartedTime";
            type: "u64";
        }, {
            name: "loanEndedTime";
            type: "u64";
        }, {
            name: "loanDuration";
            type: "u64";
        }, {
            name: "minRepaidNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "lenderReward";
    type: {
        kind: "struct";
        fields: [{
            name: "lender";
            type: "publicKey";
        }, {
            name: "borrower";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "totalPoint";
            type: "u128";
        }, {
            name: "collectionPoint";
            type: "u128";
        }, {
            name: "subOffer";
            type: "publicKey";
        }, {
            name: "loanMint";
            type: "publicKey";
        }, {
            name: "loanMintDecimals";
            type: "u8";
        }, {
            name: "startTime";
            type: "u64";
        }, {
            name: "endTime";
            type: "u64";
        }, {
            name: "lenderLastClaimedTime";
            type: "u64";
        }, {
            name: "borrowerLastClaimedTime";
            type: "u64";
        }, {
            name: "maxDuration";
            type: "u64";
        }, {
            name: "loanAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }];
    };
}, anchor.IdlTypes<UnlocLoan>> | null>;
export declare const getCurrentVotingKey: () => Promise<anchor.web3.PublicKey>;
export declare const getLoanOfferList: () => Promise<anchor.ProgramAccount<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{
    name: "globalState";
    type: {
        kind: "struct";
        fields: [{
            name: "superOwner";
            type: "publicKey";
        }, {
            name: "treasuryWallet";
            type: "publicKey";
        }, {
            name: "accruedInterestNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "expireLoanDuration";
            type: "u64";
        }, {
            name: "denominator";
            type: "u64";
        }, {
            name: "rewardPerSol";
            type: "u64";
        }, {
            name: "rewardPerUsdc";
            type: "u64";
        }, {
            name: "lenderRewardsPercentage";
            type: "u64";
        }, {
            name: "unlocStakingPid";
            type: "publicKey";
        }, {
            name: "unlocStakingPoolId";
            type: "publicKey";
        }, {
            name: "votingPid";
            type: "publicKey";
        }, {
            name: "currentVotingNum";
            type: "u64";
        }, {
            name: "tokenMetadataPid";
            type: "publicKey";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 15];
            };
        }];
    };
} | {
    name: "offer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "subOfferCount";
            type: "u64";
        }, {
            name: "startSubOfferNum";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "subOffer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "offerMint";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "offer";
            type: "publicKey";
        }, {
            name: "subOfferNumber";
            type: "u64";
        }, {
            name: "lender";
            type: "publicKey";
        }, {
            name: "offerVault";
            type: "publicKey";
        }, {
            name: "offerAmount";
            type: "u64";
        }, {
            name: "repaidAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }, {
            name: "loanStartedTime";
            type: "u64";
        }, {
            name: "loanEndedTime";
            type: "u64";
        }, {
            name: "loanDuration";
            type: "u64";
        }, {
            name: "minRepaidNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "lenderReward";
    type: {
        kind: "struct";
        fields: [{
            name: "lender";
            type: "publicKey";
        }, {
            name: "borrower";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "totalPoint";
            type: "u128";
        }, {
            name: "collectionPoint";
            type: "u128";
        }, {
            name: "subOffer";
            type: "publicKey";
        }, {
            name: "loanMint";
            type: "publicKey";
        }, {
            name: "loanMintDecimals";
            type: "u8";
        }, {
            name: "startTime";
            type: "u64";
        }, {
            name: "endTime";
            type: "u64";
        }, {
            name: "lenderLastClaimedTime";
            type: "u64";
        }, {
            name: "borrowerLastClaimedTime";
            type: "u64";
        }, {
            name: "maxDuration";
            type: "u64";
        }, {
            name: "loanAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }];
    };
}, anchor.IdlTypes<UnlocLoan>>>[]>;
export declare const getLoanOfferMultiple: (keys: anchor.web3.PublicKey[]) => Promise<(Object | null)[]>;
export declare const getLoanOffer: (key: anchor.web3.PublicKey) => Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{
    name: "globalState";
    type: {
        kind: "struct";
        fields: [{
            name: "superOwner";
            type: "publicKey";
        }, {
            name: "treasuryWallet";
            type: "publicKey";
        }, {
            name: "accruedInterestNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "expireLoanDuration";
            type: "u64";
        }, {
            name: "denominator";
            type: "u64";
        }, {
            name: "rewardPerSol";
            type: "u64";
        }, {
            name: "rewardPerUsdc";
            type: "u64";
        }, {
            name: "lenderRewardsPercentage";
            type: "u64";
        }, {
            name: "unlocStakingPid";
            type: "publicKey";
        }, {
            name: "unlocStakingPoolId";
            type: "publicKey";
        }, {
            name: "votingPid";
            type: "publicKey";
        }, {
            name: "currentVotingNum";
            type: "u64";
        }, {
            name: "tokenMetadataPid";
            type: "publicKey";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 15];
            };
        }];
    };
} | {
    name: "offer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "subOfferCount";
            type: "u64";
        }, {
            name: "startSubOfferNum";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "subOffer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "offerMint";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "offer";
            type: "publicKey";
        }, {
            name: "subOfferNumber";
            type: "u64";
        }, {
            name: "lender";
            type: "publicKey";
        }, {
            name: "offerVault";
            type: "publicKey";
        }, {
            name: "offerAmount";
            type: "u64";
        }, {
            name: "repaidAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }, {
            name: "loanStartedTime";
            type: "u64";
        }, {
            name: "loanEndedTime";
            type: "u64";
        }, {
            name: "loanDuration";
            type: "u64";
        }, {
            name: "minRepaidNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "lenderReward";
    type: {
        kind: "struct";
        fields: [{
            name: "lender";
            type: "publicKey";
        }, {
            name: "borrower";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "totalPoint";
            type: "u128";
        }, {
            name: "collectionPoint";
            type: "u128";
        }, {
            name: "subOffer";
            type: "publicKey";
        }, {
            name: "loanMint";
            type: "publicKey";
        }, {
            name: "loanMintDecimals";
            type: "u8";
        }, {
            name: "startTime";
            type: "u64";
        }, {
            name: "endTime";
            type: "u64";
        }, {
            name: "lenderLastClaimedTime";
            type: "u64";
        }, {
            name: "borrowerLastClaimedTime";
            type: "u64";
        }, {
            name: "maxDuration";
            type: "u64";
        }, {
            name: "loanAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }];
    };
}, anchor.IdlTypes<UnlocLoan>> | null>;
export declare const getLoanOffersBy: (owner?: anchor.web3.PublicKey, nftMint?: anchor.web3.PublicKey, state?: OfferState) => Promise<anchor.ProgramAccount<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{
    name: "globalState";
    type: {
        kind: "struct";
        fields: [{
            name: "superOwner";
            type: "publicKey";
        }, {
            name: "treasuryWallet";
            type: "publicKey";
        }, {
            name: "accruedInterestNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "expireLoanDuration";
            type: "u64";
        }, {
            name: "denominator";
            type: "u64";
        }, {
            name: "rewardPerSol";
            type: "u64";
        }, {
            name: "rewardPerUsdc";
            type: "u64";
        }, {
            name: "lenderRewardsPercentage";
            type: "u64";
        }, {
            name: "unlocStakingPid";
            type: "publicKey";
        }, {
            name: "unlocStakingPoolId";
            type: "publicKey";
        }, {
            name: "votingPid";
            type: "publicKey";
        }, {
            name: "currentVotingNum";
            type: "u64";
        }, {
            name: "tokenMetadataPid";
            type: "publicKey";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 15];
            };
        }];
    };
} | {
    name: "offer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "subOfferCount";
            type: "u64";
        }, {
            name: "startSubOfferNum";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "subOffer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "offerMint";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "offer";
            type: "publicKey";
        }, {
            name: "subOfferNumber";
            type: "u64";
        }, {
            name: "lender";
            type: "publicKey";
        }, {
            name: "offerVault";
            type: "publicKey";
        }, {
            name: "offerAmount";
            type: "u64";
        }, {
            name: "repaidAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }, {
            name: "loanStartedTime";
            type: "u64";
        }, {
            name: "loanEndedTime";
            type: "u64";
        }, {
            name: "loanDuration";
            type: "u64";
        }, {
            name: "minRepaidNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "lenderReward";
    type: {
        kind: "struct";
        fields: [{
            name: "lender";
            type: "publicKey";
        }, {
            name: "borrower";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "totalPoint";
            type: "u128";
        }, {
            name: "collectionPoint";
            type: "u128";
        }, {
            name: "subOffer";
            type: "publicKey";
        }, {
            name: "loanMint";
            type: "publicKey";
        }, {
            name: "loanMintDecimals";
            type: "u8";
        }, {
            name: "startTime";
            type: "u64";
        }, {
            name: "endTime";
            type: "u64";
        }, {
            name: "lenderLastClaimedTime";
            type: "u64";
        }, {
            name: "borrowerLastClaimedTime";
            type: "u64";
        }, {
            name: "maxDuration";
            type: "u64";
        }, {
            name: "loanAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }];
    };
}, anchor.IdlTypes<UnlocLoan>>>[]>;
export declare const getLoanSubOffer: (key: anchor.web3.PublicKey) => Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{
    name: "globalState";
    type: {
        kind: "struct";
        fields: [{
            name: "superOwner";
            type: "publicKey";
        }, {
            name: "treasuryWallet";
            type: "publicKey";
        }, {
            name: "accruedInterestNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "expireLoanDuration";
            type: "u64";
        }, {
            name: "denominator";
            type: "u64";
        }, {
            name: "rewardPerSol";
            type: "u64";
        }, {
            name: "rewardPerUsdc";
            type: "u64";
        }, {
            name: "lenderRewardsPercentage";
            type: "u64";
        }, {
            name: "unlocStakingPid";
            type: "publicKey";
        }, {
            name: "unlocStakingPoolId";
            type: "publicKey";
        }, {
            name: "votingPid";
            type: "publicKey";
        }, {
            name: "currentVotingNum";
            type: "u64";
        }, {
            name: "tokenMetadataPid";
            type: "publicKey";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 15];
            };
        }];
    };
} | {
    name: "offer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "subOfferCount";
            type: "u64";
        }, {
            name: "startSubOfferNum";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "subOffer";
    type: {
        kind: "struct";
        fields: [{
            name: "borrower";
            type: "publicKey";
        }, {
            name: "nftMint";
            type: "publicKey";
        }, {
            name: "offerMint";
            type: "publicKey";
        }, {
            name: "state";
            type: "u8";
        }, {
            name: "offer";
            type: "publicKey";
        }, {
            name: "subOfferNumber";
            type: "u64";
        }, {
            name: "lender";
            type: "publicKey";
        }, {
            name: "offerVault";
            type: "publicKey";
        }, {
            name: "offerAmount";
            type: "u64";
        }, {
            name: "repaidAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }, {
            name: "loanStartedTime";
            type: "u64";
        }, {
            name: "loanEndedTime";
            type: "u64";
        }, {
            name: "loanDuration";
            type: "u64";
        }, {
            name: "minRepaidNumerator";
            type: "u64";
        }, {
            name: "aprNumerator";
            type: "u64";
        }, {
            name: "creationDate";
            type: "u64";
        }, {
            name: "reserved";
            type: {
                array: ["u128", 7];
            };
        }];
    };
} | {
    name: "lenderReward";
    type: {
        kind: "struct";
        fields: [{
            name: "lender";
            type: "publicKey";
        }, {
            name: "borrower";
            type: "publicKey";
        }, {
            name: "collection";
            type: "publicKey";
        }, {
            name: "totalPoint";
            type: "u128";
        }, {
            name: "collectionPoint";
            type: "u128";
        }, {
            name: "subOffer";
            type: "publicKey";
        }, {
            name: "loanMint";
            type: "publicKey";
        }, {
            name: "loanMintDecimals";
            type: "u8";
        }, {
            name: "startTime";
            type: "u64";
        }, {
            name: "endTime";
            type: "u64";
        }, {
            name: "lenderLastClaimedTime";
            type: "u64";
        }, {
            name: "borrowerLastClaimedTime";
            type: "u64";
        }, {
            name: "maxDuration";
            type: "u64";
        }, {
            name: "loanAmount";
            type: "u64";
        }, {
            name: "lenderClaimedAmount";
            type: "u64";
        }, {
            name: "borrowerClaimedAmount";
            type: "u64";
        }];
    };
}, anchor.IdlTypes<UnlocLoan>> | null>;
export declare const getLoanSubOfferList: (offer?: anchor.web3.PublicKey, nftMint?: anchor.web3.PublicKey, state?: SubOfferState) => Promise<any[]>;
export declare const getAllLoanSubOffers: () => Promise<any[]>;
export declare const getLoanSubOfferMultiple: (keys: anchor.web3.PublicKey[], offerState?: number) => Promise<any[]>;
export declare const setLoanGlobalState: (accruedInterestNumerator: anchor.BN, denominator: anchor.BN, aprNumerator: anchor.BN, expireLoanDuration: anchor.BN, rewardPerSol: anchor.BN, rewardPerUsdc: anchor.BN, lenderRewardsPercentage: anchor.BN, rewardMint: anchor.web3.PublicKey, treasury: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const setLoanInternalInfo: (unlocStakingPid: anchor.web3.PublicKey, unlocStakingPoolId: anchor.web3.PublicKey, votingPid: anchor.web3.PublicKey, tokenMetadataPid: anchor.web3.PublicKey, currentVotingNum: anchor.BN, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const depositRewards: (amount: anchor.BN, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const claimRewards: (userReward: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const setLoanOffer: (nftMint: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const cancelLoanOffer: (nftMint: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const createLoanSubOffer: (offerAmount: anchor.BN, loanDuration: anchor.BN, minRepaidNumerator: anchor.BN, aprNumerator: anchor.BN, nftMint: anchor.web3.PublicKey, offerMint: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const createLoanSubOfferByStaking: (offerAmount: anchor.BN, loanDuration: anchor.BN, minRepaidNumerator: anchor.BN, aprNumerator: anchor.BN, nftMint: anchor.web3.PublicKey, offerMint: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const updateLoanSubOffer: (offerAmount: anchor.BN, loanDuration: anchor.BN, minRepaidNumerator: anchor.BN, aprNumerator: anchor.BN, subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const updateLoanSubOfferByStaking: (offerAmount: anchor.BN, loanDuration: anchor.BN, minRepaidNumerator: anchor.BN, aprNumerator: anchor.BN, subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const cancelLoanSubOffer: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const acceptLoanOfferByVoting: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const acceptLoanOffer: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const repayLoan: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const claimLoanCollateral: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare const claimExpiredCollateral: (subOffer: anchor.web3.PublicKey, signer?: anchor.web3.PublicKey, signers?: anchor.web3.Keypair[]) => Promise<void>;
export declare enum OfferState {
    Proposed = 0,
    Accepted = 1,
    Expired = 2,
    Fulfilled = 3,
    NFTClaimed = 4,
    Canceled = 5
}
export declare enum SubOfferState {
    Proposed = 0,
    Accepted = 1,
    Expired = 2,
    Fulfilled = 3,
    LoanPaymentClaimed = 4,
    Canceled = 5
}
export declare const getLoanSubOffersKeysByState: (state: SubOfferState[]) => Promise<anchor.web3.PublicKey[] | undefined>;
export declare const addTokenAccountInstruction: (mint: anchor.web3.PublicKey, owner: anchor.web3.PublicKey, instructions: TransactionInstruction[], signer: anchor.web3.PublicKey, signers: anchor.web3.Keypair[], rent?: number) => Promise<anchor.web3.PublicKey>;
export declare const checkWalletATA: (mint: string, connection?: anchor.web3.Connection, walletPubkey?: anchor.web3.PublicKey) => Promise<any>;
export declare const logObject: (title: string, obj: any) => void;
export declare const getOfferBalance: (subOffer: anchor.web3.PublicKey, connection?: anchor.web3.Connection, walletPubkey?: anchor.web3.PublicKey) => Promise<number>;
export declare class MultipleNFT {
    mints: anchor.web3.PublicKey[];
    metadatas: NFTMetadata[];
    constructor(keys: anchor.web3.PublicKey[]);
    initialize(): Promise<void>;
    getNftMeta(mint: PublicKey): NFTMetadata | null;
    initArweavedata(): Promise<void>;
}
export declare class NFTMetadata implements IMetadata {
    mint: string;
    metadataPDA: string;
    onChainMetadata: OnChainMetadata;
    arweaveMetadata: ArweaveMetadata;
    masterEdition: IMasterEdition;
    constructor(mint: anchor.web3.PublicKey, metadataPDA: anchor.web3.PublicKey, onChainMetadata: OnChainMetadata);
    getAreaveMetadata(): Promise<ArweaveMetadata>;
    currentAreaveMetadata(): ArweaveMetadata;
    getMasterEdition(): Promise<IMasterEdition>;
}
export declare const ACCOUNT_LAYOUT: any;
export declare const MINT_LAYOUT: any;
//# sourceMappingURL=index.d.ts.map