import { type Observable } from 'rxjs'; import { DataFrameView, type DataQueryRequest, type DataQueryResponse, type DataSourceInstanceSettings, type MetricFindValue, type ScopedVars, type LegacyMetricFindQueryOptions, type VariableWithMultiSupport } from '@grafana/data'; import { DataSourceWithBackend, type TemplateSrv } from '@grafana/runtime'; import { ResponseParser } from '../ResponseParser'; import { type DB, type SQLQuery, type SQLOptions, type SqlQueryModel, QueryFormat, type SQLDialect } from '../types'; export declare abstract class SqlDatasource extends DataSourceWithBackend { instanceSettings: DataSourceInstanceSettings; protected readonly templateSrv: TemplateSrv; uid: string; responseParser: ResponseParser; name: string; interval: string; db: DB; preconfiguredDatabase: string; dialect: SQLDialect; constructor(instanceSettings: DataSourceInstanceSettings, templateSrv?: TemplateSrv); abstract getDB(): DB; abstract getQueryModel(target?: SQLQuery, templateSrv?: TemplateSrv, scopedVars?: ScopedVars): SqlQueryModel; getResponseParser(): ResponseParser; interpolateVariable: (value: string | string[] | number, variable: VariableWithMultiSupport) => string | number; interpolateVariablesInQueries(queries: SQLQuery[], scopedVars: ScopedVars): SQLQuery[]; filterQuery(query: SQLQuery): boolean; applyTemplateVariables(target: SQLQuery, scopedVars: ScopedVars): { refId: string; datasource: import("@grafana/schema").DataSourceRef; rawSql: string; format: QueryFormat | undefined; }; query(request: DataQueryRequest): Observable; private checkForDatabaseIssue; metricFindQuery(query: string, options?: LegacyMetricFindQueryOptions): Promise; runSql(query: string, options?: RunSQLOptions): Promise>; private runMetaQuery; targetContainsTemplate(target: SQLQuery): boolean; } interface RunSQLOptions extends LegacyMetricFindQueryOptions { refId?: string; } export {};