import { type CanvasRenderingContext2D } from 'canvas';
import * as kshoot from 'kshoot';
export interface RadarConstructorChartArgs {
    chart: kshoot.Chart;
    timing?: kshoot.Timing;
}
export interface RadarConstructorManualArgs {
    stat: RadarStat;
    difficulty?: string;
    level?: string | number;
}
export type RadarConstructorArgs = RadarConstructorChartArgs | RadarConstructorManualArgs;
export interface RadarStat {
    notes: number;
    peak: number;
    tsumami: number;
    one_hand: number;
    hand_trip: number;
    tricky: number;
}
export declare const RadarStat: Readonly<{
    rawFromChart(chart: kshoot.Chart, timing?: kshoot.Timing): RadarStat;
    fromRaw(radar_stat: RadarStat): RadarStat;
    fromChart(chart: kshoot.Chart, timing?: kshoot.Timing): RadarStat;
    clamp(radar_stat: RadarStat): RadarStat;
    createEmpty(): RadarStat;
    toString(radar_stat: RadarStat, no_round?: boolean): string;
}>;
export interface Shape {
    width: number;
    height: number;
    size: number;
}
export type Params = unknown;
export declare class Radar {
    shape: Shape;
    stat: RadarStat;
    difficulty?: string;
    level?: string;
    constructor(args: RadarConstructorArgs);
    renderBackground(ctx: CanvasRenderingContext2D): void;
    toString(): string;
    renderRadar(ctx: CanvasRenderingContext2D): void;
    renderForeground(ctx: CanvasRenderingContext2D): void;
    render(params: Params): Promise<Buffer>;
}
