public function searchStreams($query, $limit = 25, $offset = 0, $hls = null)
    {
        if (!is_string($query)) {
            throw new InvalidTypeException('Query', 'string', gettype($query));
        }

        if (empty($query)) {
            throw new TwitchApiException('A \'query\' parameter is required.');
        }

        if (!$this->isValidLimit($limit)) {
            throw new InvalidLimitException();
        }

        if (!$this->isValidOffset($offset)) {
            throw new InvalidOffsetException();
        }

        if ($hls !== null && !is_bool($hls)) {
            throw new InvalidTypeException('HLS', 'boolean', gettype($hls));
        }

        $params = [
            'query' => $query,
            'limit' => intval($limit),
            'offset' => intval($offset),
            'hls' => $hls,
        ];

        return $this->get('search/streams', $params);
    }