import { IRenderer } from '@xpadev-net/niconicomments'; declare class CommentMapper { private _color; private _id; constructor(comment: IComment); get message(): string; set message(val: string); get vpos(): number; set vpos(val: number); get _vpos(): number; get _owner(): boolean; get isYourPost(): boolean; get mail(): string; set mail(val: string); get fromButton(): boolean; get isPremium(): boolean; get color(): number; set color(val: number); get size(): number; get no(): number; private _parseColor; } type CommentContentItem = { content: string; slicedContent: string[]; font?: CommentFlashFont; width?: number[]; }; type CommentMeasuredContentItem = CommentContentItem & { width: number[]; }; type CommentFont = "defont" | "mincho" | "gothic" | "gulim" | "simsun"; type CommentFlashFont = "defont" | "gulim" | "simsun"; type CommentSize = "big" | "medium" | "small"; type CommentLoc = "ue" | "naka" | "shita"; type FormattedCommentWithFont = { id: number; vpos: number; date: number; date_usec: number; owner: boolean; premium: boolean; mail: string[]; user_id: number; layer: number; loc: CommentLoc; size: CommentSize; fontSize: number; font: CommentFont; color: string; strokeColor?: string; wakuColor?: string; fillColor?: string; full: boolean; ender: boolean; _live: boolean; long: number; invisible: boolean; content: CommentContentItem[]; rawContent: string; flash: boolean; lineCount: number; lineOffset: number; is_my_post: boolean; button?: ButtonParams; }; type FormattedCommentWithSize = FormattedCommentWithFont & { height: number; width: number; lineHeight: number; resized: boolean; resizedX: boolean; resizedY: boolean; content: CommentMeasuredContentItem[]; charSize: number; }; interface IComment { comment: FormattedCommentWithSize; invisible: boolean; loc: CommentLoc; width: number; long: number; height: number; vpos: number; flash: boolean; posY: number; owner: boolean; layer: number; mail: string[]; content: string; image?: HTMLCanvasElement | null; draw: (vpos: number, showCollision: boolean, isDebug: boolean) => void; } type ButtonParams = { message: { before: string; body: string; after: string; }; //表示するボタンの内容 commentMessage: string; //コメントの内容 commentMail: string[]; //コメントのコマンド → 未指定時は色のみ継承 commentVisible: boolean; //コメントを投稿するか limit: number; //ボタンの使用上限 local: boolean; //ローカルコメントか hidden: boolean; //通常のコメントのように表示するか }; declare class Niwango { constructor( targetCanvas: HTMLCanvasElement, formattedComments: CommentMapper[], ); draw(vpos: number, clear: boolean): void; addComments(...newComments: CommentMapper[]): void; } declare class NiconicommentsPluginNiwango { niwango: Niwango; constructor(targetCanvas: IRenderer, formattedComments: IComment[]); draw(vpos: number): void; addComments(formattedComments: IComment[]): void; } declare const wrapper: (_niwango: typeof Niwango) => typeof NiconicommentsPluginNiwango; export { wrapper as default };