consumer/async.go
func (c *Consumer) FilteredFirehose(
	subscriptionId string,
	authToken string,
	filter EnvelopeFilter,
) (<-chan *events.Envelope, <-chan error) {
	return c.firehose(newFirehose(
		subscriptionId,
		authToken,
		WithEnvelopeFilter(filter),
	))
}
func (c *Consumer) FilteredFirehose(
	subscriptionId string,
	authToken string,
	filter EnvelopeFilter,
) (<-chan *events.Envelope, <-chan error) {
	return c.firehose(newFirehose(
		subscriptionId,
		authToken,
		WithEnvelopeFilter(filter),
	))
}
// FilteredFirehose streams a filtered set of envelopes. It has functionality
// similar to Firehose.