import { Definition, UnknownSpec } from './definitions'; import { TimeSeriesData } from './time-series-data'; import { TraceData } from './trace-data'; import { ProfileData } from './profile-data'; import { LogData } from './log-data'; interface QuerySpec { name?: string; plugin: Definition; } /** * A generic query definition interface that can be extended to support more than just TimeSeriesQuery */ export interface QueryDefinition { kind: Kind; spec: QuerySpec; } /** * Mapping the query plugin to the data type it returns */ export interface QueryType { TimeSeriesQuery: TimeSeriesData; TraceQuery: TraceData; ProfileQuery: ProfileData; LogQuery: LogData; } /** * Check if the given type is a valid {@link QueryPluginType} with compile time safety * @param type */ export declare function isValidQueryPluginType(type: string): type is QueryPluginType; /** * Extract the keys of QueryType * ex: 'TimeSeriesQuery' */ export type QueryPluginType = keyof QueryType; /** * Values of QueryType * ex: 'TimeSeriesData' */ export type QueryDataType = QueryType[keyof QueryType]; export {}; //# sourceMappingURL=query.d.ts.map