import type { IGroup } from '@visactor/vrender-core';
import { LegendBase } from '../base';
import type { DiscreteLegendAttrs, LegendItemDatum } from './type';
import type { ComponentOptions } from '../../interface';
export declare class DiscreteLegend extends LegendBase<DiscreteLegendAttrs> {
    name: string;
    private _itemsContainer;
    private _itemWidthByUser;
    private _itemHeightByUser;
    private _itemHeight;
    private _itemMaxWidth;
    private _contentMaxHeight;
    private _pagerComponent;
    private _lastActiveItem;
    private _itemContext;
    private _scrollMask;
    private _scrollMaskContext;
    static defaultAttributes: Partial<DiscreteLegendAttrs>;
    constructor(attributes: DiscreteLegendAttrs, options?: ComponentOptions);
    render(): void;
    setSelected(selectedData: (string | number)[]): void;
    protected _renderItems(): {
        doWrap: boolean;
        maxWidthInCol: number;
        startX: number;
        startY: number;
        maxPages: number;
        pages: number;
        startIndex: number;
        items: LegendItemDatum[];
        isHorizontal: boolean;
        currentPage: number;
        totalPage: number;
        isScrollbar: boolean;
        clipContainer: IGroup;
    };
    protected _renderContent(): void;
    protected _bindEvents(): void;
    private _autoEllipsis;
    private _renderEachItem;
    private _createPager;
    private _createScrollbar;
    private _updatePositionOfPager;
    private _computeScrollbarDelta;
    private _updatePositionOfScrollbar;
    private _bindEventsOfPager;
    private _renderPager;
    private _renderScrollbar;
    private renderScrollMask;
    private updateScrollMask;
    private _renderPagerComponent;
    private _onHover;
    private _onUnHover;
    private _onClick;
    private _hover;
    private _unHover;
    private _setLegendItemState;
    private _removeLegendItemState;
    private _getSelectedLegends;
    private _appendDataToShape;
    private _dispatchLegendEvent;
    private _handleStyle;
    release(): void;
}
