import { type DataOrError } from "../../common/error"; import { type Database, Difficulty } from "gcm-database/ongeki"; import type { Chart, Regions } from "gcm-database-local/ongeki"; import { z } from "zod/v4"; import type { OngekiScoreAdapter } from "../lib/adapter"; import type { Score } from "../lib/types"; import { OngekiPainter } from "./painter"; export declare class ChartPainter extends OngekiPainter { private database; static readonly THEME: z.ZodObject<{ name: z.ZodString; displayName: z.ZodString; width: z.ZodNumber; height: z.ZodNumber; layout: z.ZodOptional>; }, z.core.$strip>>; elements: z.ZodArray; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"detail-info">; width: z.ZodNumber; height: z.ZodNumber; margin: z.ZodNumber; color: z.ZodObject<{ card: z.ZodString; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"chart-grid">; width: z.ZodNumber; height: z.ZodNumber; margin: z.ZodNumber; gap: z.ZodNumber; bubble: z.ZodObject<{ margin: z.ZodNumber; color: z.ZodObject<{ basic: z.ZodString; advanced: z.ZodString; expert: z.ZodString; master: z.ZodString; lunatic: z.ZodString; }, z.core.$strip>; }, z.core.$strip>; color: z.ZodObject<{ card: z.ZodString; }, z.core.$strip>; sprites: z.ZodObject<{ achievement: z.ZodObject<{ d: z.ZodString; c: z.ZodString; b: z.ZodString; bb: z.ZodString; bbb: z.ZodString; a: z.ZodString; aa: z.ZodString; aaa: z.ZodString; s: z.ZodString; ss: z.ZodString; sss: z.ZodString; sssp: z.ZodString; }, z.core.$strip>; milestone: z.ZodObject<{ ab: z.ZodString; abp: z.ZodString; fc: z.ZodString; fb: z.ZodString; none: z.ZodString; }, z.core.$strip>; versions: z.ZodObject<{ JPN: z.ZodRecord; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"character-info">; width: z.ZodNumber; height: z.ZodNumber; margin: z.ZodNumber; color: z.ZodObject<{ card: z.ZodString; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"profile">; sprites: z.ZodObject<{ rating: z.ZodObject<{ numberMap: z.ZodObject<{ blue: z.ZodString; green: z.ZodString; orange: z.ZodString; red: z.ZodString; purple: z.ZodString; bronze: z.ZodString; silver: z.ZodString; gold: z.ZodString; platinum: z.ZodString; rainbow: z.ZodString; rainbow2: z.ZodString; rainbow3: z.ZodString; }, z.core.$strip>; headerText: z.ZodObject<{ blue: z.ZodString; green: z.ZodString; orange: z.ZodString; red: z.ZodString; purple: z.ZodString; bronze: z.ZodString; silver: z.ZodString; gold: z.ZodString; platinum: z.ZodString; rainbow: z.ZodString; rainbow2: z.ZodString; rainbow3: z.ZodString; }, z.core.$strip>; }, z.core.$strip>; profile: z.ZodObject<{ userplate: z.ZodString; icon: z.ZodString; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"image">; width: z.ZodOptional; height: z.ZodOptional; align: z.ZodOptional>; path: z.ZodString; }, z.core.$strip>, z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"text">; size: z.ZodNumber; content: z.ZodString; width: z.ZodOptional; height: z.ZodOptional; linebreak: z.ZodOptional; align: z.ZodOptional>; color: z.ZodOptional; borderColor: z.ZodOptional; font: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodOptional; x: z.ZodNumber; y: z.ZodNumber; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; width: z.ZodOptional; height: z.ZodOptional; size: z.ZodNumber; borderColor: z.ZodOptional; font: z.ZodOptional; linebreak: z.ZodOptional; align: z.ZodOptional>; color: z.ZodOptional; type: z.ZodLiteral<"hitokoto">; probability: z.ZodOptional; customLines: z.ZodOptional]>>; }, z.core.$strip>], "type">>; }, z.core.$strip>; private static readonly DEFAULT_THEME; private modules; constructor(database: Database); draw(variables: { username: string; rating: number; chartIdentifier: string; scores: Record; type: "refresh" | "classic"; }, options?: { scale?: number; theme?: string; profilePicture?: Buffer; region?: Regions; }): Promise>; drawWithScoreSource(source: OngekiScoreAdapter, variables: { username: string; chartIdentifier: string; type: "refresh" | "classic"; }, options?: { scale?: number; theme?: string; profilePicture?: Buffer | null; region?: Regions; }): Promise>>; }