import { loadImage } from '@napi-rs/canvas';

type ClassicOption = {
    thumbnailImage?: string;
    backgroundColor?: string;
    backgroundImage?: string;
    imageDarkness?: number;
    progress?: number;
    progressColor?: string;
    progressBarColor?: string;
    title?: string;
    titleColor?: string;
    author?: string;
    authorColor?: string;
    startTime?: string;
    endTime?: string;
    timeColor?: string;
};
type ClassicProOption = {
    thumbnailImage?: string;
    backgroundColor?: string;
    backgroundImage?: string;
    imageDarkness?: number;
    progress?: number;
    progressColor?: string;
    progressBarColor?: string;
    title?: string;
    titleColor?: string;
    author?: string;
    authorColor?: string;
    startTime?: string;
    endTime?: string;
    timeColor?: string;
};
type DynamicOption = {
    thumbnailImage?: string;
    backgroundColor?: string;
    backgroundImage?: string;
    imageDarkness?: number;
    progress?: number;
    progressColor?: string;
    progressBarColor?: string;
    title?: string;
    titleColor?: string;
    author?: string;
    authorColor?: string;
};
type MiniOption = {
    title: string;
    titleColor?: string;
    author: string;
    authorColor?: string;
    thumbnailImage?: Parameters<typeof loadImage>[0];
    trackIndex?: number;
    trackIndexTextColor?: string;
    trackIndexBackgroundColor?: string;
    trackIndexBackgroundRadii?: number | number[];
    backgroundColor?: string;
    backgroundImage?: Parameters<typeof loadImage>[0];
    imageDarkness?: number;
};

declare const Classic: (option: ClassicOption) => Promise<Buffer>;

declare const ClassicPro: (option: ClassicProOption) => Promise<Buffer>;

declare const Dynamic: (option: DynamicOption) => Promise<Buffer>;

declare const Mini: (options: MiniOption) => Promise<Buffer>;

export { Classic, type ClassicOption, ClassicPro, type ClassicProOption, Dynamic, type DynamicOption, Mini, type MiniOption };
