import { BaseComponent } from '../base/base-component';
import type { IEffect, IModelInitOption } from '../../model/interface';
import { type IComponent, type IComponentOption } from '../interface';
import type { AdaptiveSpec, ILayoutPoint, ILayoutRect, ILayoutType, IOrientType, IRect, StringOrNumber } from '../../typings';
import { type IBaseScale } from '@visactor/vscale';
import { type IBoundsLike } from '@visactor/vutils';
import type { IDataFilterComponent, IDataFilterComponentSpec, IFilterMode } from './interface';
import type { AbstractComponent } from '@visactor/vrender-components';
import type { IGraphic } from '@visactor/vrender-core';
import { DataFilterEvent } from './data-filter-event';
export declare abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec> extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>> implements IDataFilterComponent {
    protected _dataFilterEvent: DataFilterEvent;
    layoutType: ILayoutType | 'none';
    protected _component: AbstractComponent;
    protected _orient: IOrientType;
    protected _isHorizontal: boolean;
    get isHorizontal(): boolean;
    protected _auto?: boolean;
    protected _fixedBandSize?: number;
    protected _cacheRect?: ILayoutRect;
    protected _cacheLayoutStartPoint?: ILayoutPoint;
    protected _cacheVisibility?: boolean;
    protected _dataUpdating: boolean;
    protected _stateScale: IBaseScale;
    get stateScale(): IBaseScale;
    protected _hasInitStateScale: boolean;
    protected _seriesUserId?: StringOrNumber[];
    protected _seriesIndex?: number[];
    protected _regionUserId: string[];
    protected _regionIndex: number[];
    protected _newDomain: any[];
    protected _relatedAxisComponent: IComponent;
    get relatedAxisComponent(): IComponent;
    protected _originalStateFields: Record<number, string | number>;
    protected _startValue: number | string;
    protected _endValue: number | string;
    protected _start: number;
    protected _end: number;
    protected _minSpan: number;
    protected _maxSpan: number;
    protected _spanCache: number;
    protected _shouldChange: boolean;
    protected _domainCache: any;
    protected _field: string | undefined;
    protected _stateField: string;
    protected _valueField?: string;
    protected _width: number;
    protected _height: number;
    protected _filterMode: IFilterMode;
    protected _handleDataCollectionChangeBound: any;
    protected _currentDataCollection: any[];
    setStartAndEnd(start: number | string, end: number | string, rangeMode?: ['percent' | 'value', 'percent' | 'value']): void;
    enableInteraction(): void;
    disableInteraction(): void;
    zoomIn(location?: {
        x: number;
        y: number;
    }): void;
    zoomOut(location?: {
        x: number;
        y: number;
    }): void;
    protected abstract _createOrUpdateComponent(): void;
    protected abstract _computeWidth(): number;
    protected abstract _computeHeight(): number;
    protected abstract _handleDataCollectionChange(): void;
    protected abstract _updateScaleRange(): void;
    protected _initEvent(): void;
    protected _handleChange(start: number, end: number, updateComponent?: boolean): void;
    protected _updateRangeFactor(tag?: 'startHandler' | 'endHandler'): void;
    protected _handleStateChange: (startValue: number, endValue: number, tag?: string) => boolean;
    effect: IEffect;
    protected _visible: boolean;
    get visible(): boolean;
    constructor(spec: T, options: IComponentOption);
    created(): void;
    initLayout(): void;
    init(option: IModelInitOption): void;
    _compareSpec(spec: AdaptiveSpec<T, 'width' | 'height'>, prevSpec: AdaptiveSpec<T, 'width' | 'height'>): {
        change: boolean;
        reMake: boolean;
        reRender: boolean;
        reSize: boolean;
        reCompile: boolean;
    };
    reInit(spec?: AdaptiveSpec<T, 'width' | 'height'>): void;
    onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect): void;
    updateLayoutAttribute(): void;
    protected _initAfterLayout(): void;
    protected _beforeLayoutEnd(): void;
    onLayoutEnd(): void;
    getBoundsInRect(rect: ILayoutRect): IBoundsLike;
    setAttrFromSpec(): void;
    protected _setAxisFromSpec(): void;
    protected _setRegionsFromSpec(): void;
    protected _collectDataInfo(): {
        dataCollection: any[];
        seriesCollection: any[];
        stateFields: string[];
        valueFields: string[];
        isCategoryState: boolean;
    };
    protected _initData(): void;
    protected _addTransformToSeries(): void;
    onDataUpdate(): void;
    private _parseFieldOfSeries;
    protected _setStateFromSpec(): void;
    protected _setStateFromAxis(): void;
    protected _initStateScale(): void;
    protected _computeDomainOfStateScale(isContinuous?: boolean): any;
    protected _autoVisible(isShown: boolean): void;
    hide(): void;
    show(): void;
    protected _autoUpdate(rect?: ILayoutRect): boolean;
    protected _getNeedClearVRenderComponents(): IGraphic[];
}
