Data format (time series vs table) negotiation between datasource and panel

Do panels expose an interface to advertise the format(s) of data they accept? I’m writing a custom datasource plugin, and I want to show different configuration options in the query_ctrl based on whether the associated panel accepts one type or the other (or both).

You can add some prop e.g. panel_type to a query-row object (example) and parse a receiving data according this type or generate a “specific” request.

Also you can generate a flag in html depends on current panel type.
<div class="gf-form" ng-if = "ctrl.panel.type == 'graph'">... (example)

I don’t know why Grafana don’t pass a panel type with request out of box. Imho it’s strange.