import type { ShapeProperties, PositiveSize2D } from '../drawing/dml/shape-properties'; import type { TextBody } from '../drawing/dml/text'; /** `` / `` marker. Decimal in 0..1. */ export interface ChartRelativeMarker { x: number; y: number; } /** `` shape leaf (text box / arrow / preset shape with optional text). */ export interface ChartDrawingShape { /** cNvPr id (1-based, unique per chartDrawing). */ id: number; name?: string; descr?: string; hidden?: boolean; /** When true, emit `` so Excel renders the shape as a text-box. */ txBox?: boolean; spPr?: ShapeProperties; txBody?: TextBody; } /** `` picture leaf. */ export interface ChartDrawingPicture { id: number; name?: string; descr?: string; /** rels-resolved id used by ``. */ embedRId?: string; spPr?: ShapeProperties; } export type UserShapeContent = { kind: 'shape'; shape: ChartDrawingShape; } | { kind: 'picture'; picture: ChartDrawingPicture; }; export type UserShapeAnchor = { kind: 'relSize'; from: ChartRelativeMarker; to: ChartRelativeMarker; content: UserShapeContent; } | { kind: 'absSize'; from: ChartRelativeMarker; ext: PositiveSize2D; content: UserShapeContent; }; export interface ChartDrawing { shapes: UserShapeAnchor[]; } export declare const makeChartDrawing: (shapes?: UserShapeAnchor[]) => ChartDrawing; export declare const makeChartShape: (opts: { id: number; name?: string; descr?: string; hidden?: boolean; txBox?: boolean; spPr?: ShapeProperties; txBody?: TextBody; }) => ChartDrawingShape; export declare const makeRelSizeAnchor: (from: ChartRelativeMarker, to: ChartRelativeMarker, content: UserShapeContent) => UserShapeAnchor; export declare const makeAbsSizeAnchor: (from: ChartRelativeMarker, ext: PositiveSize2D, content: UserShapeContent) => UserShapeAnchor;