import { approveTokenDelegateAuthorityBuilder, createMintBuilder, createTokenBuilder, createTokenIfMissingBuilder, createTokenWithMintBuilder, freezeTokensBuilder, mintTokensBuilder, revokeTokenDelegateAuthorityBuilder, sendTokensBuilder, thawTokensBuilder, } from './operations';
/**
 * This client allows you to access the underlying Transaction Builders
 * for the write operations of the Token module.
 *
 * @see {@link TokenClient}
 * @group Module Builders
 * */
export class TokenBuildersClient {
    constructor(metaplex) {
        this.metaplex = metaplex;
    }
    // -----------------
    // Create
    // -----------------
    /** {@inheritDoc createMintBuilder} */
    createMint(input, options) {
        return createMintBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc createTokenBuilder} */
    createToken(input, options) {
        return createTokenBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc createTokenIfMissingBuilder} @internal */
    createTokenIfMissing(input, options) {
        return createTokenIfMissingBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc createTokenWithMintBuilder} */
    createTokenWithMint(input, options) {
        return createTokenWithMintBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Update
    // -----------------
    /** {@inheritDoc mintTokensBuilder} */
    mint(input, options) {
        return mintTokensBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc sendTokensBuilder} */
    send(input, options) {
        return sendTokensBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc freezeTokensBuilder} */
    freeze(input, options) {
        return freezeTokensBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc thawTokensBuilder} */
    thaw(input, options) {
        return thawTokensBuilder(this.metaplex, input, options);
    }
    // -----------------
    // Delegate
    // -----------------
    /** {@inheritDoc approveTokenDelegateAuthorityBuilder} */
    approveDelegateAuthority(input, options) {
        return approveTokenDelegateAuthorityBuilder(this.metaplex, input, options);
    }
    /** {@inheritDoc revokeTokenDelegateAuthorityBuilder} */
    revokeDelegateAuthority(input, options) {
        return revokeTokenDelegateAuthorityBuilder(this.metaplex, input, options);
    }
}
//# sourceMappingURL=TokenBuildersClient.js.map