import { Address, Hash } from 'viem'; import { Signature } from './blockchain'; import { CollectionOfferInput as ApiCollectionOfferInput, CollectionSignedOfferInput, LoanSortInput, LoanStatusType, MarketplaceEnum, OffersSortInput, OfferStatus, RenegotiationOfferInput as ApiRenegotiationInput, SignedRenegotiationOfferInput, SingleNftOfferInput as ApiSingleNftOfferInput, SingleNftSignedOfferInput, TermsFilter, TraitOfferInput as ApiTraitOfferInput, UserFilter } from './generated/graphql'; import { Optional } from './utils/types'; type MaxSeniorRepaymentArg = { maxSeniorRepayment: Exclude; }; export type SingleNftOfferInput = Optional & MaxSeniorRepaymentArg; export type UnsignedSingleNftOffer = Omit & { nftCollateralAddress: Address; nftCollateralTokenId: bigint; }; export type SingleNftOffer = UnsignedSingleNftOffer & SingleNftSignedOfferInput & { signature: Hash; } & MaxSeniorRepaymentArg; export type CollectionOfferInput = Optional & MaxSeniorRepaymentArg; export type UnsignedCollectionOffer = Omit & { nftCollateralAddress: Address; }; export type CollectionOffer = UnsignedCollectionOffer & { signature: Hash; nftCollateralTokenId: 0n; } & MaxSeniorRepaymentArg; /** Terms of a loan offer on the NFTs of a collection carrying every one of `traitIds`; the API fills the validator. */ export type TraitOfferInput = Optional & MaxSeniorRepaymentArg; export type RenegotiationInput = Optional & ({ trancheIndex: Exclude; targetPrincipal?: undefined; } | { trancheIndex?: undefined; targetPrincipal: Exclude; }); export type UnsignedRenegotiationOffer = Omit; export type RenegotiationOffer = UnsignedRenegotiationOffer & { signature: Signature; }; /** @ignore */ export declare const MAX_NUMBER = 115792089237316195423570985008687907853269984665640564039457584007913129639935n; export type ListOffersProps = { limit?: number; cursor?: string | null; sortBy?: OffersSortInput; filterBy?: { nft?: number; onlySingleNftOffers?: boolean; collection?: number; onlyCollectionOffers?: boolean; borrower?: Address; lenders?: Address[]; status?: OfferStatus[]; contractAddresses?: Address[]; }; }; export interface ListLoansProps { limit?: number; cursor?: string | null; borrowers?: Address[]; collections?: number[]; nfts?: number[]; statuses?: LoanStatusType[]; sortBy?: LoanSortInput; terms?: TermsFilter; orderByStatuses?: boolean; loansCurrencyAddress?: Address; } export type ListListingsProps = { collections?: number[]; user?: UserFilter; marketPlaces?: MarketplaceEnum[]; limit?: number; cursor?: string | null; }; export type NftStandard = 'ERC721' | 'ERC1155'; export type TransferNftStandard = NftStandard | 'CryptoPunks' | 'OldERC721'; export {};