import { FC } from 'react';
import { SankeyNodeExtra } from '../utils';

export type SankeyLabelPosition = 'inside' | 'outside';
export interface SankeyLabelFormatProps {
    x: number;
    y: number;
    textAnchor: string;
    node: SankeyNodeExtra;
}
export interface SankeyLabelProps {
    /**
     * Whether the element is active or not. Set internally by `Sankey`.
     */
    active: boolean;
    /**
     * Whether the label is disabled. Set internally by `Sankey`.
     */
    disabled: boolean;
    /**
     * Width of the chart. Set internally by `Sankey`.
     */
    chartWidth?: number;
    /**
     * CSS class to apply.
     */
    className?: string;
    /**
     * Fill color.
     */
    fill: string;
    /**
     * Label position. Set internally by `Sankey`.
     */
    position?: SankeyLabelPosition;
    /**
     * Percentage of total width occupied by labels on
     * either side of the graph inside the container.
     * Used for auto-ellipsizing labels
     * Set internally by `Sankey`.
     */
    labelPadding?: number;
    /**
     * Node data. Set internally by `Sankey`.
     */
    node?: SankeyNodeExtra;
    /**
     * Opacity callback. Used internally by `Sankey`.
     */
    opacity: (active: boolean, disabled: boolean) => number;
    /**
     * Padding between the label and the node.
     */
    padding?: string | number;
    /**
     * Whether to show the label or not.
     */
    visible: boolean;
    /**
     * Width of the node set by the 'Sankey'.
     */
    nodeWidth: number;
    /**
     * Custom formatting for the label.
     */
    format?: (value: SankeyLabelFormatProps) => any;
    /**
     * Specify the number of characters at which the text would be ellipsized.
     * Defaults to 'auto' based on available width and max cut-off at `LABEL_TRUNCATE_LENGTH=10`
     */
    ellipsis?: number | 'none' | 'auto';
}
export declare const SankeyLabel: FC<Partial<SankeyLabelProps>>;
