// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for go.mongodb.org/mongo-driver/mongo/options, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: go.mongodb.org/mongo-driver/mongo/options (exports: ; functions: Client)

// Package options is a stub of go.mongodb.org/mongo-driver/mongo/options, generated by depstubber.
package options

import (
	context "context"
	tls "crypto/tls"
	net "net"
	time "time"
)

type AutoEncryptionOptions struct {
	KeyVaultClientOptions *ClientOptions
	KeyVaultNamespace     string
	KmsProviders          map[string]map[string]interface{}
	SchemaMap             map[string]interface{}
	BypassAutoEncryption  *bool
	ExtraOptions          map[string]interface{}
}

func (_ *AutoEncryptionOptions) SetBypassAutoEncryption(_ bool) *AutoEncryptionOptions {
	return nil
}

func (_ *AutoEncryptionOptions) SetExtraOptions(_ map[string]interface{}) *AutoEncryptionOptions {
	return nil
}

func (_ *AutoEncryptionOptions) SetKeyVaultClientOptions(_ *ClientOptions) *AutoEncryptionOptions {
	return nil
}

func (_ *AutoEncryptionOptions) SetKeyVaultNamespace(_ string) *AutoEncryptionOptions {
	return nil
}

func (_ *AutoEncryptionOptions) SetKmsProviders(_ map[string]map[string]interface{}) *AutoEncryptionOptions {
	return nil
}

func (_ *AutoEncryptionOptions) SetSchemaMap(_ map[string]interface{}) *AutoEncryptionOptions {
	return nil
}

func Client() *ClientOptions {
	return nil
}

type ClientOptions struct {
	AppName                *string
	Auth                   *Credential
	ConnectTimeout         *time.Duration
	Compressors            []string
	Dialer                 ContextDialer
	HeartbeatInterval      *time.Duration
	Hosts                  []string
	LocalThreshold         *time.Duration
	MaxConnIdleTime        *time.Duration
	MaxPoolSize            *uint64
	MinPoolSize            *uint64
	PoolMonitor            interface{}
	Monitor                interface{}
	ReadConcern            interface{}
	ReadPreference         interface{}
	Registry               interface{}
	ReplicaSet             *string
	RetryWrites            *bool
	RetryReads             *bool
	ServerSelectionTimeout *time.Duration
	Direct                 *bool
	SocketTimeout          *time.Duration
	TLSConfig              *tls.Config
	WriteConcern           interface{}
	ZlibLevel              *int
	ZstdLevel              *int
	AutoEncryptionOptions  *AutoEncryptionOptions
	AuthenticateToAnything *bool
	Deployment             interface{}
}

func (_ *ClientOptions) ApplyURI(_ string) *ClientOptions {
	return nil
}

func (_ *ClientOptions) GetURI() string {
	return ""
}

func (_ *ClientOptions) SetAppName(_ string) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetAuth(_ Credential) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetAutoEncryptionOptions(_ *AutoEncryptionOptions) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetCompressors(_ []string) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetConnectTimeout(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetDialer(_ ContextDialer) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetDirect(_ bool) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetHeartbeatInterval(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetHosts(_ []string) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetLocalThreshold(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetMaxConnIdleTime(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetMaxPoolSize(_ uint64) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetMinPoolSize(_ uint64) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetMonitor(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetPoolMonitor(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetReadConcern(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetReadPreference(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetRegistry(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetReplicaSet(_ string) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetRetryReads(_ bool) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetRetryWrites(_ bool) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetServerSelectionTimeout(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetSocketTimeout(_ time.Duration) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetTLSConfig(_ *tls.Config) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetWriteConcern(_ interface{}) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetZlibLevel(_ int) *ClientOptions {
	return nil
}

func (_ *ClientOptions) SetZstdLevel(_ int) *ClientOptions {
	return nil
}

func (_ *ClientOptions) Validate() error {
	return nil
}

type ContextDialer interface {
	DialContext(_ context.Context, _ string, _ string) (net.Conn, error)
}

type Credential struct {
	AuthMechanism           string
	AuthMechanismProperties map[string]string
	AuthSource              string
	Username                string
	Password                string
	PasswordSet             bool
}
