import { ComponentType } from 'react'; import { Plugin } from '@superset-ui/core'; import { QueryFormData } from '@superset-ui/query'; import ChartMetadata from './ChartMetadata'; import { BuildQueryFunction, TransformProps } from '../types/TransformFunction'; import { ChartControlPanel } from './ChartControlPanel'; export declare type PromiseOrValue = Promise | T; export declare type PromiseOrValueLoader = () => PromiseOrValue; export declare type ChartType = ComponentType; declare type ValueOrModuleWithValue = T | { default: T; }; interface ChartPluginConfig { metadata: ChartMetadata; /** Use buildQuery for immediate value. For lazy-loading, use loadBuildQuery. */ buildQuery?: BuildQueryFunction; /** Use loadBuildQuery for dynamic import (lazy-loading) */ loadBuildQuery?: PromiseOrValueLoader>>; /** Use transformProps for immediate value. For lazy-loading, use loadTransformProps. */ transformProps?: TransformProps; /** Use loadTransformProps for dynamic import (lazy-loading) */ loadTransformProps?: PromiseOrValueLoader>; /** Use Chart for immediate value. For lazy-loading, use loadChart. */ Chart?: ChartType; /** Use loadChart for dynamic import (lazy-loading) */ loadChart?: PromiseOrValueLoader>; /** Control panel configuration object */ controlPanel?: ChartControlPanel; } export default class ChartPlugin extends Plugin { controlPanel: ChartControlPanel; metadata: ChartMetadata; loadBuildQuery?: PromiseOrValueLoader>; loadTransformProps: PromiseOrValueLoader; loadChart: PromiseOrValueLoader; constructor(config: ChartPluginConfig); register(): this; unregister(): this; configure(config: { [key: string]: unknown; }, replace?: boolean): this; } export {}; //# sourceMappingURL=ChartPlugin.d.ts.map