import { SGMark , Axis , Scale , TickValue } from '@chart-parts/interfaces' ; import { SceneFrame } from '../context/SceneFrame' ; export interface AxisSpace { top : number ; right : number ; bottom : number ; left : number ; } /**
 * A context object for generating axis components
 */ export interface AxisContext { axis : Axis ; thickness : number ; scale : Scale < any , any > ; range : [ number , number ] ; rangeProperty : string ; rangeEndProperty : string ; crossProperty : string ; crossEndProperty : string ; horizontal : boolean ; topOrLeft : boolean ; frame : SceneFrame ; domainCross : number ; domainMinRange : number ; domainMaxRange : number ; ticks : PositionedTickValue [ ] ; tickCrossStart : number ; tickCrossEnd : number ; labelFormatter : ( input : any ) => string ; } export interface PositionedTickValue extends TickValue { position : number ; } /**
 * Interface for axis components such as ticks and labels
 */ export interface AxisComponent { param context createContext ( context ) : Partial < AxisContext > ; param context isScenegraphElementGenerated ( context ) : boolean ; param context createScenegraphElement ( context ) : SGMark < any > ; }