import { approveNftCollectionAuthorityBuilder, approveNftUseAuthorityBuilder, createNftBuilder, createSftBuilder, deleteNftBuilder, freezeDelegatedNftBuilder, migrateToSizedCollectionNftBuilder, printNewEditionBuilder, revokeNftCollectionAuthorityBuilder, revokeNftUseAuthorityBuilder, thawDelegatedNftBuilder, unverifyNftCollectionBuilder, unverifyNftCreatorBuilder, updateNftBuilder, useNftBuilder, verifyNftCollectionBuilder, verifyNftCreatorBuilder, } from './operations';
/**
 * This client allows you to access the underlying Transaction Builders
 * for the write operations of the NFT module.
 *
 * @see {@link NftClient}
 * @group Module Builders
 * */
export class NftBuildersClient {
    constructor(metaplex) {
        this.metaplex = metaplex;
    }
    // -----------------
    // Create, Update and Delete
    // -----------------
    /** {@inheritDoc createNftBuilder} */
    create(input, options) {
        return createNftBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc createSftBuilder} */
    createSft(input, options) {
        return createSftBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc printNewEditionBuilder} */
    printNewEdition(input, options) {
        return printNewEditionBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc updateNftBuilder} */
    update(input, options) {
        return updateNftBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc deleteNftBuilder} */
    delete(input, options) {
        return deleteNftBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Use
    // -----------------
    /** {@inheritDoc useNftBuilder} */
    use(input, options) {
        return useNftBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc approveNftUseAuthorityBuilder} */
    approveUseAuthority(input, options) {
        return approveNftUseAuthorityBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc revokeNftUseAuthorityBuilder} */
    revokeUseAuthority(input, options) {
        return revokeNftUseAuthorityBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Creators
    // -----------------
    /** {@inheritDoc verifyNftCreatorBuilder} */
    verifyCreator(input, options) {
        return verifyNftCreatorBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc unverifyNftCreatorBuilder} */
    unverifyCreator(input, options) {
        return unverifyNftCreatorBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Collections
    // -----------------
    /** {@inheritDoc verifyNftCollectionBuilder} */
    verifyCollection(input, options) {
        return verifyNftCollectionBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc unverifyNftCollectionBuilder} */
    unverifyCollection(input, options) {
        return unverifyNftCollectionBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc approveNftCollectionAuthorityBuilder} */
    approveCollectionAuthority(input, options) {
        return approveNftCollectionAuthorityBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc revokeNftCollectionAuthorityBuilder} */
    revokeCollectionAuthority(input, options) {
        return revokeNftCollectionAuthorityBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc migrateToSizedCollectionNftBuilder} */
    migrateToSizedCollection(input, options) {
        return migrateToSizedCollectionNftBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Token
    // -----------------
    /** {@inheritDoc freezeDelegatedNftBuilder} */
    freezeDelegatedNft(input, options) {
        return freezeDelegatedNftBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc thawDelegatedNftBuilder} */
    thawDelegatedNft(input, options) {
        return thawDelegatedNftBuilder(this.metaplex, input, options);
    }
}
//# sourceMappingURL=NftBuildersClient.js.map