import type { ChartBounds, ChartKey, ChartMarkRenderer, ChartMotionDefinition, ChartTheme, ChartValue, MarkScene } from './types.js'; export interface PolarResolvedScale { id: string; channel: 'angle' | 'radius'; domain: readonly TValue[]; map: (value: TValue) => number; ticks: (count: number) => readonly TValue[]; bandwidth: number; } export interface PolarLayoutContext { chart: ChartBounds; centerX: number; centerY: number; radius: number; startAngle: number; endAngle: number; scales: Readonly>; angle?: PolarResolvedScale; radiusScale?: PolarResolvedScale; } export interface InitializedPolarMark { id: string; colorValues: readonly unknown[]; angleValues: readonly unknown[]; radiusValues: readonly unknown[]; includeZeroRadius: boolean; requiresAngleScale: boolean; requiresRadiusScale: boolean; motion?: ChartMotionDefinition; render: (context: PolarMarkRenderContext) => MarkScene; } export interface PolarMarkInitializeContext { markIndex: number; parentId: string; } export interface PolarMarkRenderContext { layout: PolarLayoutContext; color: (value: ChartKey | null | undefined) => string; theme: ChartTheme; } export interface PolarMark { initialize: (context: PolarMarkInitializeContext) => InitializedPolarMark; motion?: ChartMotionDefinition; renderer?: ChartMarkRenderer; readonly __datum?: TDatum; readonly __angle?: TAngle; readonly __radius?: TRadius; } /** Constructs the lifecycle shared by built-in and optional polar marks. */ export declare function createPolarMark(initialize: (context: PolarMarkInitializeContext) => InitializedPolarMark, motion?: ChartMotionDefinition, renderer?: ChartMarkRenderer): PolarMark;