import { ExpressionAstExpression } from 'src/plugins/expressions' ; import { SavedObject } from '../../saved_objects/public' ; import { AggConfigOptions , SearchSourceFields , TimefilterContract , } from '../../../plugins/data/public' ; import { SerializedVis , Vis , VisParams } from './vis' ; import { ExprVis } from './expressions/vis' ; export { Vis , SerializedVis , VisParams } ; export interface VisualizationController { render ( visData , visParams ) : Promise < void > ; destroy ( ) : void ; isLoaded ? ( ) : Promise < void > | void ; } export type VisualizationControllerConstructor = new ( el , vis ) => VisualizationController ; export interface SavedVisState { title : string ; type : string ; params : VisParams ; aggs : AggConfigOptions [ ] ; } export interface ISavedVis { id ? : string ; title : string ; description ? : string ; visState : SavedVisState ; searchSourceFields ? : SearchSourceFields ; uiStateJSON ? : string ; savedSearchRefName ? : string ; savedSearchId ? : string ; } export interface VisSavedObject extends SavedObject , ISavedVis { } export interface VisResponseValue { visType : string ; visData : object ; visConfig : object ; params ? : object ; } export interface VisToExpressionAstParams { timefilter : TimefilterContract ; timeRange ? : any ; abortSignal ? : AbortSignal ; } export type VisToExpressionAst < TVisParams = VisParams > = ( vis : Vis < TVisParams > , params : VisToExpressionAstParams ) => ExpressionAstExpression ;