import React from 'react';
import { ChartProps } from 'react-chartjs-2';
import { NeedOverTimeRanges } from '@parlor/common';
import { options as defaultOptions } from './config';
export type ReportLineItem = {
    byText?: string;
    color?: string | 'none';
    hideColorSwatch?: boolean;
    hideFromChart?: boolean;
    hideFromKey?: boolean;
    label?: string;
    report: number[];
    total?: number | string;
} & Partial<ChartProps<'line'>['options']['datasets']['line']>;
export type ReportLineChartProps = {
    /**
     * Selected tab
     */
    activeTab?: {
        range: NeedOverTimeRanges | string;
        title: string;
    };
    activeTabType?: {
        id: string;
        title: string;
    };
    /**
     * border
     */
    border?: boolean;
    /**
     * by Text
     */
    byText?: string;
    /**
     * title
     */
    chartTitle?: string;
    /**
     * container className
     */
    className?: string;
    /**
     * custom options
     */
    customOptions?: typeof defaultOptions;
    /**
     * Date Labels for line chart
     */
    dateLabels?: string[];
    /**
     * Divider by text index
     */
    dividerByTextIndex?: number;
    /**
     * Tabs for months range
     */
    headerTabs?: Array<{
        range: NeedOverTimeRanges | string;
        title: string;
    }>;
    /**
     * IsComing Soon warning
     */
    isComingSoon?: boolean;
    /**
     * Whether background can show or not.
     */
    isFillGraph?: boolean;
    /**
     * isHideColorSwatch
     */
    isHideColorSwatch?: boolean;
    /**
     * isHideInfo: hides count info:
     */
    isHideInfo?: boolean;
    /**
     * isLegendVisible: show the legend
     */
    isLegendVisible?: boolean;
    isLoading?: boolean;
    /**
     * Show Total Count
     */
    isShowTotalCount?: boolean;
    /**
     * Additional class for itemBox
     */
    itemBoxClassName?: string;
    labelClassName?: string;
    labelSuffix?: string | JSX.Element;
    /**
     * Last month report for line chart
     */
    lastMonth?: boolean;
    /**
     * Report Data for line chart
     */
    reportData: ReportLineItem[];
    /**
     * Tabs action
     */
    setActiveTab?: (title: string) => void;
    setActiveTabType?: (title: string) => void;
    /**
     * Tabs
     */
    tabs?: {
        id: string;
        title: string;
    }[];
    /**
     * Line Chart Variant
     */
    variant?: 'default' | 'horizontal' | 'vertical';
};
declare function ReportLineChartInner({ reportData, dateLabels: _dateLabels, labelClassName, byText, lastMonth, chartTitle, border, customOptions, isHideInfo, className, headerTabs, activeTab, setActiveTab, variant, isShowTotalCount, isHideColorSwatch, isFillGraph, itemBoxClassName, isComingSoon, tabs, activeTabType, setActiveTabType, isLegendVisible, isLoading, labelSuffix, }: ReportLineChartProps): JSX.Element;
export declare const ReportLineChart: React.MemoExoticComponent<typeof ReportLineChartInner>;
export {};
