import { Context } from 'koishi';
import { StatProcessOptions } from './stat';
import { StatRecord } from './index';
/**
 * 统计数据渲染类
 * 负责将统计数据渲染为可视化图表
 */
export declare class Renderer {
    private ctx;
    constructor(ctx: Context);
    /**
     * 将HTML内容转换为图片
     * @param {string} html - 要渲染的HTML内容
     * @param {Object} options - 渲染选项
     * @param {number} [options.width] - 图片宽度
     * @returns {Promise<Buffer>} 图片Buffer数据
     */
    htmlToImage(html: string, options?: {
        width?: number;
    }): Promise<Buffer>;
    /**
     * 将统计记录转换为图表数据
     * @param {StatRecord[]} records - 统计记录数组
     * @param {keyof StatRecord} key - 统计键名
     * @param {StatProcessOptions} options - 处理选项
     * @returns {Array<{name: string, value: number, time: string, rawTime: Date}>} 转换后的图表数据
     */
    recordsToChartData(records: StatRecord[], key: keyof StatRecord, options?: StatProcessOptions): Array<{
        name: string;
        value: number;
        time: string;
        rawTime: Date;
    }>;
    /**
     * 将统计记录分页处理
     * @param {Array<{name: string, value: number, time: string, rawTime: Date}>} data - 统计数据
     * @param {number} maxRowsPerPage - 每页最大行数
     * @param {number} minRowsForNewPage - 创建新页面的最小行数
     * @returns {Array<Array<{name: string, value: number, time: string, rawTime: Date}>>} 分页后的数据
     */
    paginateData(data: Array<{
        name: string;
        value: number;
        time: string;
        rawTime: Date;
    }>, maxRowsPerPage?: number, minRowsForNewPage?: number): Array<Array<{
        name: string;
        value: number;
        time: string;
        rawTime: Date;
    }>>;
    /**
     * 生成统计数据的图片
     * @param {StatRecord[]} records - 统计记录数组
     * @param {keyof StatRecord} key - 统计键名
     * @param {string} title - 图表标题
     * @param {StatProcessOptions} options - 处理选项
     * @returns {Promise<Buffer[]>} 生成的图片Buffer数组
     */
    generateStatImage(records: StatRecord[], key: keyof StatRecord, title: string, options?: StatProcessOptions): Promise<Buffer[]>;
    /**
     * 生成综合统计图，将用户的所有统计信息整合到一张图中
     * @param {Array<{records: StatRecord[], title: string, key: keyof StatRecord, options?: StatProcessOptions}>} datasets - 多个数据集
     * @param {string} mainTitle - 主标题
     * @returns {Promise<Buffer[]>} 生成的图片Buffer数组
     */
    generateCombinedStatImage(datasets: Array<{
        records: StatRecord[];
        title: string;
        key: keyof StatRecord;
        options?: StatProcessOptions;
    }>, mainTitle: string): Promise<Buffer[]>;
    /**
     * 生成表格HTML
     * @param {Array<{name: string, value: number, time: string}>} data - 表格数据
     * @param {keyof StatRecord} key - 数据类型
     * @param {string} headerColor - 表头颜色
     * @returns {string} 表格HTML
     * @private
     */
    private generateTableHTML;
}
