import * as PlotlyTyped from 'plotly.js';
import React from 'react';
import { QueryWrapperChildProps } from '../../../containers/QueryWrapper';
import { ColumnType, FacetColumnResultValueCount, FacetColumnResultValues, QueryBundleRequest } from '../../../utils/synapseTypes';
export declare type FacetNavPanelOwnProps = {
    applyChangesToGraphSlice: Function;
    applyChangesToFacetFilter: Function;
    index: number;
    facetToPlot: FacetColumnResultValues;
    plotType: PlotType;
    onSetPlotType: (plotType: PlotType) => void;
    onHide: () => void;
    isModalView: boolean;
    onCloseModal?: () => void;
    lastQueryRequest: QueryBundleRequest | undefined;
};
declare type FacetNavPanelProps = FacetNavPanelOwnProps & QueryWrapperChildProps;
export declare type PlotType = 'PIE' | 'BAR';
export declare type GraphData = {
    data: PlotlyTyped.Data[];
    labels: FacetWithLabel[];
    colors: string[];
};
export declare function truncate(str: string | undefined, n: number): string | undefined;
export declare function extractPlotDataArray(facetToPlot: FacetColumnResultValues, columnType: ColumnType | undefined, index: number, plotType: PlotType, accessToken?: string, facetAliases?: {}): Promise<{
    data: PlotlyTyped.Data[];
    labels: {
        facet: FacetColumnResultValueCount;
        label: string;
        truncatedLabel: string;
        count: number;
    }[];
    colors: string[];
}>;
export declare function getPlotStyle(parentWidth: number | null, plotType: PlotType, maxHeight: number): {
    width: string;
    height: string;
};
export declare type FacetWithLabel = {
    label: string;
    count: number;
};
declare type FacetPlotLegendProps = {
    labels?: FacetWithLabel[];
    colors?: string[];
    isExpanded: boolean;
};
export declare function FacetPlotLegend(props: FacetPlotLegendProps): JSX.Element;
declare const FacetNavPanel: React.FunctionComponent<FacetNavPanelProps>;
export default FacetNavPanel;
