package identify

import 

type config struct {
	protocolVersion            string
	userAgent                  string
	disableSignedPeerRecord    bool
	metricsTracer              MetricsTracer
	disableObservedAddrManager bool
	timeout                    time.Duration
}

// Option is an option function for identify.
type Option func(*config)

// ProtocolVersion sets the protocol version string that will be used to
// identify the family of protocols used by the peer.
func ( string) Option {
	return func( *config) {
		.protocolVersion = 
	}
}

// UserAgent sets the user agent this node will identify itself with to peers.
func ( string) Option {
	return func( *config) {
		.userAgent = 
	}
}

// DisableSignedPeerRecord disables populating signed peer records on the outgoing Identify response
// and ONLY sends the unsigned addresses.
func () Option {
	return func( *config) {
		.disableSignedPeerRecord = true
	}
}

func ( MetricsTracer) Option {
	return func( *config) {
		.metricsTracer = 
	}
}

// DisableObservedAddrManager disables the observed address manager. It also
// effectively disables the nat emitter and EvtNATDeviceTypeChanged
func () Option {
	return func( *config) {
		.disableObservedAddrManager = true
	}
}

// WithTimeout sets the timeout for identify interactions.
func ( time.Duration) Option {
	return func( *config) {
		.timeout = 
	}
}