import type { Blockchain } from "@rarible/api-client"; import type { UnionAddress } from "@rarible/types"; import type { EVMBlockchain } from "@rarible/sdk-common"; import type { CreateCollectionBlockchains } from "./domain"; import type { CreateCollectionResponse } from "./domain"; import type { CreatePublicCollectionArguments } from "./domain"; import type { AptosCreateCollectionTokenAsset } from "./domain"; export type ICreateCollectionSimplified = (req: CreateCollectionRequestSimplified) => Promise; export type CreateCollectionRequestSimplified = EthereumCreatePublicCollectionSimplified | EthereumCreatePrivateCollectionSimplified | SolanaCreateCollectionSimplified | AptosCreateCollectionSimplified; export interface AbstractCreateCollectionSimplified { blockchain: T; } /** * Ethereum create collection argument types */ export interface EthereumCreatePublicCollectionSimplified extends AbstractCreateCollectionSimplified, EthereumCreateCollectionSimplifiedCommon { isPublic: true; } export interface EthereumCreatePrivateCollectionSimplified extends AbstractCreateCollectionSimplified, EthereumCreateCollectionSimplifiedCommon { isPublic: false; operators: UnionAddress[]; } export type EthereumCreateCollectionSimplifiedCommon = { type: "ERC721" | "ERC1155"; } & Omit; /** * Solana */ export interface SolanaCreateCollectionSimplified extends AbstractCreateCollectionSimplified { metadataURI: string; } /** * Aptos */ export type AptosCreateCollectionSimplified = AbstractCreateCollectionSimplified & AptosCreateCollectionTokenAsset;