import CanvasService, { Canvas, CanvasRenderingContext2D, Image } from '@koishijs/canvas';
import { Awaitable, h } from 'koishi';
import { ElementHandle, Page } from 'puppeteer-core';
declare const kElement: unique symbol;
declare class BaseElement {
    protected page: Page;
    protected id: string;
    [kElement]: boolean;
    constructor(page: Page, id: string);
    get selector(): string;
    dispose(): Promise<void>;
}
declare class CanvasElement extends BaseElement implements Canvas {
    width: number;
    height: number;
    private fontFaceSet;
    private styleHandles;
    private stmts;
    private ctx;
    constructor(page: Page, id: string, width: number, height: number, fontFaceSet?: FontFace[], styleHandles?: ElementHandle<Element>[]);
    getContext(type: '2d'): CanvasRenderingContext2D<Canvas, Image>;
    toDataURL(type: 'image/png'): Promise<string>;
    toBuffer(type: 'image/png'): Promise<Buffer<ArrayBuffer>>;
    dispose(): Promise<void>;
}
export default class extends CanvasService {
    static inject: string[];
    private page;
    private counter;
    start(): Promise<void>;
    stop(): Promise<void>;
    createCanvas(width: number, height: number): Promise<CanvasElement>;
    render(width: number, height: number, callback: (ctx: CanvasRenderingContext2D) => Awaitable<void>): Promise<h>;
    loadImage(source: string | URL | Buffer | ArrayBufferLike, type?: string): Promise<Image>;
}
export {};
