import { GraphData, ShapeStyle } from '@antv/f6-core';
import Base from '../base';
interface LegendConfig {
    data: GraphData;
    position?: 'top' | 'top-left' | 'top-right' | 'right' | 'right-top' | 'right-bottom' | 'left' | 'left-top' | 'left-bottom' | 'bottom' | 'bottom-left' | 'bottom-right';
    padding?: number | number[];
    margin?: number | number[];
    offsetX?: number;
    offsetY?: number;
    containerStyle?: ShapeStyle;
    layout?: 'vertical' | 'horizontal';
    width?: number;
    height?: number;
    align?: 'center' | 'right' | 'left';
    title?: string;
    titleConfig?: {
        position?: 'center' | 'right' | 'left';
        offsetX?: number;
        offsetY?: number;
        [key: string]: unknown;
    };
    itemConfig?: {
        width?: number;
        height?: number;
        fontSize?: number;
        margin?: 'string';
    };
    filter?: {
        enable?: boolean;
        multiple?: boolean;
        trigger?: 'click';
        legendStateStyles?: {
            active?: ShapeStyle;
            inactive?: ShapeStyle;
        };
        graphActiveState?: string;
        graphInactiveState?: string;
        filterFunctions?: {
            [key: string]: (d: any) => boolean;
        };
    };
}
/**
 * 不支持mouseenter
 */
export default class Legend extends Base {
    active: any[];
    inActive: any[];
    constructor(config?: LegendConfig);
    getDefaultCfgs(): LegendConfig;
    init(): void;
    protected getContainerPos(size?: number[]): any;
    bindEvents(): void;
    /**
     * 更新 legend 数据，开放给用户控制
     * @param param
     */
    changeData(data: GraphData): void;
    goActive(node: any): void;
    goDefault(node: any): void;
    goInActive(node: any): void;
    activateLegend(node: any): void;
    clearActiveLegend(): void;
    /**
     * 高亮和置灰图例，并过滤主图元素
     * @param param
     */
    filterData(activeNode: any): void;
    /**
     * 清除主图相关状态
     * @param param
     */
    clearFilter(): void;
    /**
     * 渲染 legend 图
     * @param param
     */
    protected render(): number[];
    protected processData(): void;
    protected formatArray(key: string): any;
    private getStyle;
    destroy(): void;
}
export {};
