import { Context, Schema, Service } from "koishi";
export declare const inject: {
    required: string[];
    optional: string[];
};
export declare const name = "markdown-to-image-service";
export declare const usage = "## \u547D\u4EE4\n\n### `markdownToImage [markdownText:text]`\n\n\u5C06 Markdown \u6587\u672C\u8F6C\u6362\u4E3A\u56FE\u7247\u3002\n\n- **\u7528\u6CD5 1**\uFF1A`markdownToImage # Hello World`\n- **\u7528\u6CD5 2**\uFF1A\u76F4\u63A5\u8F93\u5165 `markdownToImage`\uFF0C\u6839\u636E\u63D0\u793A\u8F93\u5165 Markdown \u5185\u5BB9\u3002\n\n## \u670D\u52A1\n\n\u672C\u63D2\u4EF6\u63D0\u4F9B `markdownToImage` \u670D\u52A1\uFF0C\u4F9B\u5176\u4ED6\u63D2\u4EF6\u8C03\u7528\u3002\n\n```typescript\nctx.markdownToImage.convertToImage(markdownText: string): Promise<Buffer>\n```\n\n### \u793A\u4F8B\n\n```typescript\nimport { Context, h } from 'koishi'\nimport {} from 'koishi-plugin-markdown-to-image-service'\n\nexport const inject = {\n  required: ['markdownToImage'],\n}\n\nexport function apply(ctx: Context) {\n  ctx.command('test-md', '\u6D4B\u8BD5 Markdown \u56FE\u7247\u8F6C\u6362')\n    .action(async ({ session }) => {\n      const markdown = `\n# Hello, Koishi\n\nThis is a test.\n\n- LaTeX: $E=mc^2$\n- Code:\n  \\`\\`\\`typescript\n  console.log('Hello, world!')\n  \\`\\`\\`\n- Mermaid:\n  \\`\\`\\`mermaid\n  graph TD;\n      A-->B;\n      A-->C;\n      B-->D;\n      C-->D;\n  \\`\\`\\`\n`\n      const imageBuffer = await ctx.markdownToImage.convertToImage(markdown)\n      return h.image(imageBuffer, 'image/png')\n    })\n}\n```\n\n## QQ \u7FA4\n\n- `956758505`\n";
interface ThemeSettings {
    pageTheme: "light" | "dark";
    codeTheme: string;
    mermaidTheme: "default" | "dark" | "forest" | "neutral";
}
declare const themePresets: Record<string, ThemeSettings>;
/**
 * 渲染相关的配置
 */
interface RenderingConfig {
    width: number;
    height: number;
    deviceScaleFactor: number;
    defaultImageFormat: "png" | "jpeg" | "webp";
    waitUntil: "load" | "domcontentloaded" | "networkidle0" | "networkidle2";
}
/**
 * 自定义主题的详细配置
 */
interface CustomThemeSettings {
    pageTheme: "light" | "dark";
    codeTheme: string;
    mermaidTheme: "default" | "dark" | "forest" | "neutral";
}
/**
 * 主题配置，可以是预设模式或自定义模式
 */
type ThemeConfig = {
    mode: "preset";
    preset: keyof typeof themePresets;
} | {
    mode: "custom";
    custom: CustomThemeSettings;
};
export interface Config {
    rendering: RenderingConfig;
    theme: ThemeConfig;
}
export declare const Config: Schema<Config>;
declare module "koishi" {
    interface Context {
        markdownToImage: MarkdownToImageService;
    }
}
declare class MarkdownToImageService extends Service {
    readonly config: Config;
    private loggerForService;
    private md;
    constructor(ctx: Context, config: Config);
    private getThemeSettings;
    private buildHtml;
    convertToImage(markdownText: string): Promise<Buffer>;
}
export declare function apply(ctx: Context, config: Config): Promise<void>;
export {};
