// @flow export type Scaler = (x: T) => number; export type BandedScale = { (x: T): number, domain(): Array, range(): Array, copy(): BandedScale, bandwidth(): number, round(): boolean, }; export type TickScale = { (x: T): number, domain(): Array, range(): Array, ticks(count: number): Array, tickFormat(count: number, fmt: ?string): (val: T) => string, copy(): TickScale, round(): boolean, }; export type Orients = 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT'; export type AxisStyle = { orient: Orients, tickSizeInner: number, tickSizeOuter: number, tickPadding: number, strokeWidth: number, strokeColor: string, tickFont: string, tickFontSize: number, }; export type PropsForAxis = { range: Array, values: Array, position: Scaler, format(d: T): string, };