import Base, { IPluginBaseConfig } from '../base';
import { TickCfg, SliderOption } from './trendTimeBar';
import { TimeBarSliceOption } from './timeBarSlice';
import { IG6GraphEvent, TimeBarType, IAbstractGraph as IGraph, ShapeStyle } from '@antv/g6-core';
import { Interval } from './trend';
import { ControllerCfg } from './controllerBtn';
export interface Callback extends IG6GraphEvent {
    originValue: number[];
    value: number[];
}
interface TrendConfig {
    readonly data: {
        date: string;
        value: string;
    }[];
    readonly x?: number;
    readonly y?: number;
    readonly width?: number;
    readonly height?: number;
    readonly smooth?: boolean;
    readonly isArea?: boolean;
    readonly lineStyle?: ShapeStyle;
    readonly areaStyle?: ShapeStyle;
    readonly interval?: Interval;
}
interface TimeBarConfig extends IPluginBaseConfig {
    readonly x?: number;
    readonly y?: number;
    readonly width?: number;
    readonly height?: number;
    readonly padding?: number;
    readonly type?: TimeBarType;
    readonly trend?: TrendConfig;
    readonly slider?: SliderOption;
    readonly tick?: TimeBarSliceOption | TickCfg;
    readonly controllerCfg?: ControllerCfg;
    readonly filterEdge?: boolean;
    readonly filterItemTypes?: string[];
    readonly containerCSS?: Object;
    readonly changeData?: boolean;
    rangeChange?: (graph: IGraph, minValue: string, maxValue: string) => void;
    getDate?: (d: any) => number;
    getValue?: (d: any) => number;
    shouldIgnore?: (itemType: 'node' | 'edge', model: any, dateRage: {
        min: number;
        max: number;
    }) => boolean;
}
export default class TimeBar extends Base {
    constructor(config?: TimeBarConfig);
    private cacheGraphData;
    getDefaultCfgs(): TimeBarConfig;
    /**
     * 初始化 TimeBar 的容器
     */
    initContainer(): void;
    init(): void;
    private renderTrend;
    private filterData;
    private initEvent;
    destroy(): void;
}
export {};
