import { CartesianFrame, RadialFrame } from './types'; import { Scale, BandScaleOptions } from '../../utils/scales'; export type CartesianScaleSpec = { type: 'linear'; domain: [number, number]; } | { type: 'log'; domain: [number, number]; } | { type: 'time'; domain: [number, number]; } | { type: 'band'; domain: string[]; opts?: BandScaleOptions; }; export interface CreateCartesianFrameOptions { width: number; height: number; padding: { top: number; right: number; bottom: number; left: number; }; x: CartesianScaleSpec; y: CartesianScaleSpec; } /** * Build a cartesian frame. Scale ranges are plot-local ([0, plotWidth] for x, * [plotHeight, 0] for y); toPixel/toData add the plot offset so callers work in * container-origin pixels. */ export declare function createCartesianFrame(opts: CreateCartesianFrameOptions): CartesianFrame; export interface CreateRadialFrameOptions { cx: number; cy: number; innerRadius: number; outerRadius: number; startAngle?: number; endAngle?: number; angleScale?: Scale; radiusScale?: Scale; } /** * Build a radial frame using the canonical polar convention (0° = up, * clockwise). All coordinates are container-origin pixels. */ export declare function createRadialFrame(opts: CreateRadialFrameOptions): RadialFrame;