import { EventHandler, SyntheticEvent } from 'react'; import { EventsHandlers, SvgAttributes } from './types.svg'; export declare const tuple: (...args: Args) => Args; export declare const strTuple: (...args: Args) => Args; export declare const isUndefinedTuple: (x: [any, any]) => x is [undefined, undefined]; export declare const isNotNil: (t: T | null | undefined) => t is T; /** * Type used to prettify complex type */ declare type Id = { [K in keyof T]: T[K]; }; declare type Get = Key extends keyof From ? From[Key] : never; /** * Picks undefined keys */ declare type UndefinedProperties = { [P in keyof T]-?: undefined extends T[P] ? P : never; }[keyof T]; /** * Turn undefined keys as optional */ declare type ToOptional = Id>> & Omit>>; /** * Merge objects */ export declare type Merge = ToOptional<{ [K in keyof A | keyof B]: Get | Get; }>; export declare type Component = (props: Props) => JSX.Element; export declare type SvgAttributesGetters = { [K in keyof SvgAttributes]?: Getter>; }; declare type NativeEvent = T extends EventHandler ? V extends SyntheticEvent ? E : never : never; export declare type NativeEventHandlers = { [Event in keyof EventsHandlers]?: (event: NativeEvent[Event]>, datum: T) => void; }; export declare type Iteratee = (t: T, i: number) => U; export declare type DefaultedIteratee = U | Iteratee; export declare function wrapIteratee(iteratee: Iteratee, map: Accessor): Iteratee; export interface CommonAnimationProps { delay: number; duration: number; easing: (time: number) => number; } export interface AnimationIteratees { delay?: DefaultedIteratee; duration?: DefaultedIteratee; easing?: (time: number) => number; } export interface AnimationProps extends AnimationIteratees { dataKey?: KeyAccessor; enter?: SvgAttributes; } export declare type Accessor = (t: Datum) => Value; export declare type Getter = Value | Accessor; export declare function isAccessor(getter: Getter): getter is Accessor; export declare function toAccessor(getter: Getter): Accessor; export declare type DataValue = string | number | Date; export declare type DataAccessor = Accessor; export declare type DataGetter = Getter; export declare type KeyAccessor = (t: T, index: number) => DataValue; export declare type Filter = (value: T, index: number, array: T[]) => boolean; export declare type ScaleContinuous = ((value: number | Date) => number) & { invert: (value: number) => number | Date; nice(): ScaleContinuous; copy(): ScaleContinuous; ticks(count?: number): number[] | Date[]; range(): number[]; }; export declare type ScaleCategorical = ((value: string) => number) & { copy(): ScaleCategorical; bandwidth(): number; domain(): string[]; range(): number[]; }; export declare type ScaleOrdinal = (value: string) => string; export declare const isScaleContinuous: (v: any) => v is ScaleContinuous; export declare const isScaleCategorical: (v: any) => v is ScaleCategorical; export declare type CartesianScale = ScaleContinuous | ScaleCategorical; export {};