public function snapshot(array $options = [])
    {
        $options += [
            'transactionOptions' => [],
        ];

        // Single Use transactions are not supported in batch mode.
        $options['transactionOptions']['singleUse'] = false;

        $transactionOptions = $this->pluck('transactionOptions', $options);
        $transactionOptions['returnReadTimestamp'] = true;

        $transactionOptions = $this->configureSnapshotOptions($transactionOptions);

        $session = $this->operation->createSession(
            $this->databaseName,
            $this->pluck('sessionOptions', $options, false) ?: []
        );

        return $this->operation->snapshot($session, [
            'className' => BatchSnapshot::class,
            'transactionOptions' => $transactionOptions
        ] + $options);
    }