import { DataType } from './expression.js'; export type Source = TableSource | TaskSource | DatablockSource | FileSource | UrlSource | MonitoringSource | QuerySource; export declare enum SourceType { Table = "table", Task = "task", Datablock = "datablock", File = "file", Url = "url", Monitoring = "monitoring", Query = "query" } export declare enum ElasticSearchResultType { Hits = "hits", Aggregations = "aggregations" } export type InputVar = unknown; export interface InputVars { [key: string]: InputVar; } export interface ElasticSearchParams { index?: string; resultType?: ElasticSearchResultType; } interface BaseSource { id: string; type: SourceType; name?: string; data?: Array; inputs?: Array; } export interface TableSource extends BaseSource { type: SourceType.Table; objectId: number; extensionId: number; dataApplicationId?: number; dataAreaId?: number; schema?: string; object?: string; } export interface QuerySource extends BaseSource { type: SourceType.Query; query: string; queryValidationKey?: string; dataApplicationId: number; elasticSearchParams?: ElasticSearchParams; } export interface FileSource extends BaseSource { type: SourceType.File; assetUrl: string; } export interface UrlSource extends BaseSource { type: SourceType.Url; url: string; } export interface MonitoringSource extends BaseSource { type: SourceType.Monitoring; } export interface DatablockSource extends BaseSource { type: SourceType.Datablock; datablockId: number; } export interface TaskSource extends BaseSource { type: SourceType.Task; taskCode: string; inputVars?: InputVars; } export interface SourceInput { name: string; type?: DataType; } export {};