import * as RealChart from 'realchart';
import { BasedSeries, PictogramSeriesOptions, RcElement, BarSeriesBase, PictorialBarSeriesOptions, PictorialBarMode, DataPoint, BarSeriesPoint, WidgetSeries, PictorialSeriesOptions, Size, IChart, WidgetSeriesPoint, WidgetSeriesLabel, PictorialSeriesLabelOptions } from 'realchart';

/**
 * Pictogram 시리즈 모델.<br/>
 * 지정한 이미지 아이콘을 반복한다.
 *
 * {@link https://realchart.co.kr/docs/api/options/SeriesOptions#type type}은 {@link https://realchart.co.kr/config/config/series/pictogram pictogram}이고,
 * {@link options 설정} 모델은 {@link https://realchart.co.kr/docs/api/options/PictogramSeriesOptions PictogramSeriesOptions}이다.
 *
 * @modules Vector
 */
declare class PictogramSeries extends BasedSeries<PictogramSeriesOptions> {
    static readonly type = "pictogram";
    static defaults: PictogramSeriesOptions;
    protected _createLegendMarker(doc: Document, size: number): RcElement;
}

declare class PictorialBarSeriesPoint extends BarSeriesPoint {
    figure: string;
    protected _readObject(series: PictorialBarSeries, v: any): void;
    protected _readArray(series: PictorialBarSeries, v: any[]): void;
}
/**
 * pictorial bar 시리즈 모델.<br/>
 * 데이터포인트 bar 위에 svg나 이미지로 데이터포인트와 관련된 그림(figure)을 표시한다.
 *
 * {@link https://realchart.co.kr/docs/api/options/SeriesOptions#type type}은 {@link https://realchart.co.kr/config/config/series/pictorialbar pictorialbar}이고,
 * {@link options 설정} 모델은 {@link https://realchart.co.kr/docs/api/options/PictorialBarSeriesOptions PictorialBarSeriesOptions}이다.
 *
 * @modules Vector
 */
declare class PictorialBarSeries extends BarSeriesBase<PictorialBarSeriesOptions> {
    static readonly type = "pictorialbar";
    static defaults: PictorialBarSeriesOptions;
    private _mode;
    _figureFielder: (v: any) => any;
    private _figurePath;
    private _imageRoot;
    private _imageUrls;
    private _widthDim;
    private _figureGap;
    getMode(): PictorialBarMode;
    getFigure(): string;
    getImage(p: PictorialBarSeriesPoint): string;
    getFigureWidth(barWidth: number): number;
    getFigureGap(): number;
    protected _createPoint(source: any): DataPoint;
    protected _createLegendMarker(doc: Document, size: number): RcElement;
    protected _doApply(op: PictorialBarSeriesOptions): void;
}

declare class PictorialSeriesPoint extends WidgetSeriesPoint {
}
declare class PictorialOthersPoint extends PictorialSeriesPoint {
    points: PictorialSeriesPoint[];
    constructor(source: any, points: PictorialSeriesPoint[]);
}
declare class PictorialSeriesLabel extends WidgetSeriesLabel<PictorialSeriesLabelOptions> {
    static readonly OUTSIDE_DIST = 25;
    static readonly ENDED_DIST = 10;
    getDistance(): number;
}
/**
 * Pictorial 시리즈 모델.<br/>
 * SVG 이미지 하나를 값에 따라 수평 또는 수직 방향의 여러 영역으로 분할해서 표시한다.
 *
 * {@link https://realchart.co.kr/docs/api/options/SeriesOptions#type type}은 {@link https://realchart.co.kr/config/config/series/pictorial pictorial}이고,
 * {@link options 설정} 모델은 {@link https://realchart.co.kr/docs/api/options/PictorialSeriesOptions PictorialSeriesOptions}이다.
 *
 * @modules Vector
 */
declare class PictorialSeries extends WidgetSeries<PictorialSeriesOptions> {
    static readonly type = "pictorial";
    static defaults: PictorialSeriesOptions;
    private _paths;
    private _totalDim;
    private _sizeDim;
    private _widthDim;
    private _heightDim;
    get paths(): string[];
    getPictorialSize(szPictorial: Size, wDomain: number, hDomain: number): Size;
    get pointLabel(): PictorialSeriesLabel;
    protected _createLabel(chart: IChart): PictorialSeriesLabel;
    protected _createPoint(source: any): PictorialSeriesPoint;
    protected _createOthersPoint(source: any, points: PictorialSeriesPoint[]): PictorialOthersPoint;
    needClip(polar: boolean): boolean;
    getTotal(): number;
    getSum(): number;
    protected _doApply(op: PictorialSeriesOptions): void;
    protected _createLegendMarker(doc: Document, size: number): RcElement;
}

declare function registerSeries(chart: typeof RealChart): void;

export { PictogramSeries, PictorialBarSeries, PictorialSeries, registerSeries as default };
