// Type definitions for d3-tip // Project: https://github.com/Caged/d3-tip // Definitions by: Gert Braspenning // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// declare namespace d3 { type TooltipDirection = ("n" | "s" | "e" | "w" | "nw" | "ne" | "sw" | "se"); interface Tooltip { hide(): Tooltip; show(): Tooltip; show(data: Datum[]): Tooltip; show(target: SVGElement): Tooltip; show(data: Datum[], target: SVGElement): Tooltip; attr(name: string): string; attr(name: string, value: Primitive): Tooltip; attr(name: string, value: (datum: Datum, index: number, outerIndex: number) => Primitive): Tooltip; attr(obj: { [key: string]: Primitive | ((datum: Datum, index: number, outerIndex: number) => Primitive) }): Tooltip; style(name: string): string; style(name: string, value: Primitive, priority?: string): Tooltip; style(name: string, value: (datum: Datum, index: number, outerIndex: number) => Primitive, priority?: string): Tooltip; style(obj: { [key: string]: Primitive | ((datum: Datum, index: number, outerIndex: number) => Primitive) }, priority?: string): Tooltip; offset(): [number, number]; offset(tuple: [number, number]): Tooltip; offset(func: (datum: Datum, index: number, outerIndex: number) => [number, number]): Tooltip; direction(): TooltipDirection; direction(direction: TooltipDirection): Tooltip; direction(func: (datum: Datum, index: number, outerIndex: number) => TooltipDirection): Tooltip; html(): string; html(content: string): Tooltip; html(func: (datum: Datum, index: number, outerIndex: number) => string): Tooltip; rootElement(): HTMLElement; rootElement(element: HTMLElement): Tooltip; rootElement(func: (datum: Datum, index: number, outerIndex: number) => HTMLElement): Tooltip; destroy(): Tooltip; } export function tip(): Tooltip; }