import { CartesianSeries } from '../cartesian/cartesian';
import type { SeriesMarkMap } from '../interface';
import { SeriesTypeEnum } from '../interface/type';
import type { Datum, StringOrNumber } from '../../typings';
import { DataView } from '@visactor/vdataset';
import type { ISankeySeriesSpec } from './interface';
import type { ExtendEventParam } from '../../event/interface';
import type { IMark, IMarkGraphic, ITextMark } from '../../mark/interface';
import { SankeySeriesSpecTransformer } from './sankey-transformer';
import type { ILabelSpec } from '../../component';
export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpec> extends CartesianSeries<T> {
    static readonly type: string;
    type: SeriesTypeEnum;
    static readonly transformerConstructor: any;
    readonly transformerConstructor: typeof SankeySeriesSpecTransformer;
    static readonly mark: SeriesMarkMap;
    static readonly builtInTheme: {
        sankey: import("./interface").ISankeySeriesTheme;
    };
    private _nodeMark;
    private _linkMark;
    private _nodeLayoutZIndex;
    private _labelLayoutZIndex;
    protected _nodesSeriesData?: DataView;
    protected _linksSeriesData?: DataView;
    private _viewBox;
    protected _categoryField: string;
    private _colorScale;
    private _nodeList;
    private _needClear;
    get direction(): "horizontal" | "vertical";
    getCategoryField(): string;
    setCategoryField(f: string): string;
    protected _valueField: string;
    getValueField(): string;
    setValueField(f: string): string;
    setAttrFromSpec(): void;
    initData(): void;
    compileData(): void;
    initMark(): void;
    protected _buildMarkAttributeContext(): void;
    valueToNode(value: StringOrNumber | StringOrNumber[]): any;
    valueToLink(value: StringOrNumber | StringOrNumber[]): any;
    valueToPositionX(value: StringOrNumber | StringOrNumber[]): any;
    valueToPositionY(value: StringOrNumber | StringOrNumber[]): any;
    initMarkStyle(): void;
    protected _initNodeMarkStyle(): void;
    protected _fillByNode: (datum: Datum) => any;
    protected _fillByLink: (datum: Datum) => any;
    protected _initLinkMarkStyle(): void;
    initLabelMarkStyle(labelMark: ITextMark, labelSpec: ILabelSpec): void;
    private _createText;
    initAnimation(): void;
    protected initEvent(): void;
    private nodesSeriesDataUpdate;
    private linksSeriesDataUpdate;
    protected _handleEmphasisElement: (params: ExtendEventParam) => void;
    protected _handleClearEmpty: () => void;
    protected _handleNodeAdjacencyClick: (graphic: IMarkGraphic) => void;
    protected _handleLinkAdjacencyClick: (graphic: IMarkGraphic) => void;
    protected _handleNodeRelatedClick: (graphic: IMarkGraphic) => void;
    protected _handleLinkRelatedClick: (graphic: IMarkGraphic) => void;
    protected _highLightElements(graphics: IMarkGraphic[], highlightNodes: string[]): void;
    protected initTooltip(): void;
    _setNodeOrdinalColorScale(): void;
    getNodeList(): any;
    _getNodeNameFromData(datum: Datum): any;
    extractNamesFromTree(tree: any, categoryName: string): Set<unknown>;
    extractNamesFromLink(links: any[]): Set<unknown>;
    getDimensionField(): string[];
    getMeasureField(): string[];
    getRawDataStatisticsByField(field: string, isNumeric?: boolean): {
        values?: any[];
        min?: number;
        max?: number;
    };
    private _collectByField;
    onLayoutEnd(): void;
    getDefaultShapeType(): string;
    protected _noAnimationDataKey(datum: Datum, index: number): unknown | undefined;
    getActiveMarks(): IMark[];
    getMarkData(datum: Datum): any;
}
export declare const registerSankeySeries: () => void;
