import type { Address } from 'viem'; import type { EditionConfig, MintConfig, SoundClientConfig, TransactionGasOptions } from '../types'; import { estimateCreateEdition, type CreateEditionOptions } from './edition/create'; import { editionInfo } from './edition/info'; import { eligibleQuantity, estimateMint, mint, numberMinted, numberOfTokensOwned } from './edition/mint'; import { editionMinterMintIds, editionRegisteredMinters, editionScheduleIds, mintSchedules } from './edition/schedules'; import { SoundClientInstance } from './instance'; import { SamEditionInfo } from './sam/contract'; import type { SamBuyOptions, SamEditionAddress, SamSellOptions } from './sam/types'; import { isSoundEdition } from './validation'; export interface SoundClient { instance: SoundClientInstance; isSoundEdition: OmitThisParameter; edition: { info: OmitThisParameter; mintSchedules: OmitThisParameter; mint: OmitThisParameter; estimateMint: OmitThisParameter; sam: (args: SamEditionAddress) => { contract: { address: Promise; info: ReturnType; totalBuyPrice: (args: { offset: number; quantity: number; }) => Promise<{ total: bigint; platformFee: bigint; artistFee: bigint; goldenEggFee: bigint; affiliateFee: bigint; } | null>; totalSellPrice: (args: { offset: number; quantity: number; }) => Promise; buy: (args: SamBuyOptions) => Promise<{ transactionHash: Address; }>; sell: (args: SamSellOptions) => Promise<{ transactionHash: Address; }>; }; api: { availableTokensToSell: (args: { quantity: number; ownerPublicAddress: string; }) => Promise; }; }; eligibleQuantity: OmitThisParameter; numberOfTokensOwned: OmitThisParameter; numberMinted: OmitThisParameter; scheduleIds: OmitThisParameter; registeredMinters: OmitThisParameter; minterMintIds: OmitThisParameter; }; creation: ({ creatorAddress }: { creatorAddress: Address; }) => { createEdition: (args: CreateEditionOptions) => Promise
; estimateEdition: (args: { editionConfig: EditionConfig; mintConfigs: MintConfig[]; salt?: string | number | undefined; } & TransactionGasOptions) => ReturnType; expectedEditionAddress: (args: { deployer: `0x${string}`; salt: string | number; }) => Promise<{ editionAddress: `0x${string}`; exists: boolean; }>; }; } export declare function SoundClient(config: SoundClientConfig): SoundClient;