import 'd3-transition'; declare type ElementDatum = { append: string; children?: ElementDatum[]; duration?: number | Function | TransitionObject; delay?: number | Function | TransitionObject; ease?: Function | TransitionObject; style?: ElementStyles; call?: Function; [key: string]: ElementValue; }; declare type ElementValue = number | string | Function | object; declare type ElementStyles = { [key: string]: number | string | Function | object; }; declare type TransitionObject = { start?: number | string | Function; update?: number | string | Function; enter: number | string | Function; exit?: number | string | Function; }; /** * Using D3, this function renders elements based on declarative `data`, effectively replacing `select`, `append`, `data`, `join`, `enter`, `exit`, `transition` and more. * @param selector * @param data */ export default function render(selector: any, data: ElementDatum[]): any; /** * Recursively renders elements based on `data`, which can be deeply nested with the `children` key. */ export declare function renderSelection(selection: any, data: ElementDatum[], level?: number): any; export {};