ag-charts-types
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
57 lines (56 loc) • 2.9 kB
TypeScript
import type { ContextDefault, DatumDefault } from './chart/types';
import type { AgChartOptions, AgFinancialChartOptions, AgGaugeOptions } from './chartBuilderOptions';
export type AgImageFormat = 'png' | 'jpeg';
/** Base render options shared by all server-side render methods. */
export interface AgBaseRenderOptions {
/** Output image width in pixels. */
width: number;
/** Output image height in pixels. */
height: number;
/** Output image format. Default: `'png'`. */
format?: AgImageFormat;
/** Pixel density multiplier for high-DPI output. Default: `1`. */
pixelRatio?: number;
/** JPEG quality 0–100 (only applies when `format` is `'jpeg'`). */
quality?: number;
/** Render timeout in milliseconds. Default: `30000`. */
timeout?: number;
}
/** Render options for server-side chart rendering, parameterised by chart options type. */
export interface AgChartRenderOptions<T> extends AgBaseRenderOptions {
/** Chart configuration options (excludes `container`, `width`, and `height`). */
options: Omit<T, 'width' | 'height' | 'container'>;
}
/** Render options for standard charts. */
export interface AgRenderOptions extends AgBaseRenderOptions {
/** Chart configuration options (excludes `container`, `width`, and `height`). */
options: Omit<AgChartOptions<DatumDefault, ContextDefault>, 'width' | 'height' | 'container'>;
}
/** Render options for gauge charts. */
export interface AgGaugeRenderOptions extends AgBaseRenderOptions {
/** Chart configuration options (excludes `container`, `width`, and `height`). */
options: Omit<AgGaugeOptions<DatumDefault, ContextDefault>, 'width' | 'height' | 'container'>;
}
/** Render options for financial charts. */
export interface AgFinancialChartRenderOptions extends AgBaseRenderOptions {
/** Chart configuration options (excludes `container`, `width`, and `height`). */
options: Omit<AgFinancialChartOptions<DatumDefault>, 'width' | 'height' | 'container'>;
}
/** Static API for server-side chart rendering. */
export interface AgChartsServerSideApi {
/** Renders a standard chart to an image buffer. */
render(options: AgRenderOptions): Promise<Uint8Array>;
/** Renders a gauge chart to an image buffer. */
renderGauge(options: AgGaugeRenderOptions): Promise<Uint8Array>;
/** Renders a financial chart to an image buffer. */
renderFinancialChart(options: AgFinancialChartRenderOptions): Promise<Uint8Array>;
/** Registers custom fonts for rendering. */
loadFonts(fonts: AgFontDefinition[]): void;
}
/** Font definition for server-side rendering custom fonts. */
export interface AgFontDefinition {
/** Font family name used in chart options. */
family: string;
/** File path to the font file (`.ttf`, `.otf`, etc.). Font variants (weight, style) are detected automatically from the font file metadata. */
path: string;
}