import type { FilterDataTarget, IBaseInteractionOptions, IDataFilter, IDatazoom, IScale, IScrollbar, IView, InteractionEvent, ViewNavigationBaseOptions, ViewNavigationRange, ViewStateByDim } from '../types';
import { BaseInteraction } from './base';
export declare abstract class ViewNavigationBase<T extends ViewNavigationBaseOptions & IBaseInteractionOptions> extends BaseInteraction<T> {
    options: T;
    protected _state: Partial<Record<'x' | 'y', ViewStateByDim>>;
    protected _inited?: boolean;
    protected _dataFilterX: IDataFilter;
    protected _dataFilterY: IDataFilter;
    constructor(view: IView, options?: T);
    protected _parseLinkedComponent(option: string | IDatazoom | IScrollbar): IDatazoom | IScrollbar;
    protected _initStateByDim(dim: 'x' | 'y', linkedComponent?: string | IDatazoom | IScrollbar, scale?: string | IScale, dataTarget?: FilterDataTarget, rangeOptions?: [number, number] | (() => [number, number])): void;
    protected _initGrammars(): void;
    protected _updateLinkedComponent(comp: IDatazoom | IScrollbar, newRange: [number, number]): void;
    updateView(type: 'start' | 'reset' | 'update' | 'end', newRange: ViewNavigationRange, eventType: string, e?: InteractionEvent): void;
    unbind(): void;
}
