import type { ChartMark, ChartMarkDatum, ChartMarkMotionOptions, ChartMarkPointX, ChartMarkPointY } from './types.js';
type AnyChartMark = ChartMark<any, any, any, any, any, any, any>;
type ChartMarkScaleIdX<TMark> = TMark extends ChartMark<any, any, any, any, any, infer TScaleId, any> ? TScaleId : never;
type ChartMarkAnyScaleX<TMark> = TMark extends ChartMark<any, any, any, infer TValue, any, any, any> ? TValue : never;
type ChartMarkAnyScaleY<TMark> = TMark extends ChartMark<any, any, any, any, infer TValue, any, any> ? TValue : never;
type ChartMarkScaleIdY<TMark> = TMark extends ChartMark<any, any, any, any, any, any, infer TScaleId> ? TScaleId : never;
export interface CompositeMarkOptions<TDatum = unknown> extends ChartMarkMotionOptions<TDatum> {
    id?: string;
}
/** Combines ordinary child marks into one namespaced chart mark. */
export declare function compositeMark<const TMarks extends readonly AnyChartMark[]>(marks: TMarks, options?: CompositeMarkOptions<ChartMarkDatum<TMarks[number]>>): ChartMark<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>, ChartMarkAnyScaleX<TMarks[number]>, ChartMarkAnyScaleY<TMarks[number]>, ChartMarkScaleIdX<TMarks[number]>, ChartMarkScaleIdY<TMarks[number]>>;
export {};
