import { MutableRefObject } from "react";
import { Selection, Series } from "d3";
export declare type Serie = {
    x: number;
    y: Record<string, number>;
}[];
export declare type SeriePayload = {
    keysPositive: string[];
    keysNegative: string[];
    colorsPositive: string[];
    colorsNegative: string[];
    data: Serie;
};
export interface D3StakedChartProps {
    title: string;
    serie: SeriePayload;
    height?: number;
    width?: number;
    margin?: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    padding?: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    ticksX?: number;
    formatterX?: (d: d3.NumberValue) => string;
    formatterYLeft?: (d: d3.NumberValue) => string;
    mapFn?: <T>(el: any) => T;
}
export declare type D3StackedChartHookProps = Required<D3StakedChartProps> & {
    svgRef: MutableRefObject<null>;
};
export declare type Point = [number, number];
export declare type SvgSelection = Selection<SVGSVGElement, unknown, HTMLElement, undefined>;
export declare type Extents = {
    minX: number | undefined;
    maxX: number | undefined;
    minY: number | undefined;
    maxY: number | undefined;
};
export declare type Staked = Series<{
    [key: string]: number;
}, string>[];
export interface Tooltip {
    tooltip: d3.Selection<d3.BaseType, unknown, HTMLElement, any>;
    point: Point;
    color: string;
    yScale: d3.ScaleLinear<number, number, never>;
}
