import * as React from 'react';
import { IRefObject } from '@fluentui/react/lib/Utilities';
import { IImageExportOptions } from '../../types/index';
/**
 * DeclarativeChart schema.
 * {@docCategory DeclarativeChart}
 */
export interface Schema {
    /**
     * Plotly schema represented as JSON object
     */
    plotlySchema: any;
}
/**
 * DeclarativeChart props.
 * {@docCategory DeclarativeChart}
 */
export interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {
    /**
     * The schema representing the chart data, layout and configuration
     */
    chartSchema: Schema;
    /**
     * Callback when an event occurs
     */
    onSchemaChange?: (eventData: Schema) => void;
    /**
     * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing
     * the public methods and properties of the component.
     */
    componentRef?: IRefObject<IDeclarativeChart>;
}
/**
 * {@docCategory DeclarativeChart}
 */
export interface IDeclarativeChart {
    exportAsImage: (opts?: IImageExportOptions) => Promise<string>;
}
/**
 * DeclarativeChart component.
 * {@docCategory DeclarativeChart}
 */
export declare const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps>;
