import type { IImageGraphicAttribute, ISetAttributeContext, ITextGraphicAttribute } from './../../vrender'; import { Image, Text } from './../../vrender'; import type { IIconBase } from '../../ts-types'; import type { ParsedFrame } from 'gifuct-js'; export interface IIconGraphicAttribute extends IImageGraphicAttribute { backgroundWidth?: number; backgroundHeight?: number; backgroundColor?: string; visibleTime?: string; funcType?: string; hoverImage?: string | HTMLImageElement | HTMLCanvasElement; originImage?: string | HTMLImageElement | HTMLCanvasElement; marginLeft?: number; marginRight?: number; shape?: 'circle' | 'square'; interactive?: boolean; } export declare class Icon extends Image { attribute: IIconGraphicAttribute; role?: string; tooltip?: IIconBase['tooltip']; frameImageData?: ImageData; tempCanvas?: HTMLCanvasElement; tempCtx?: CanvasRenderingContext2D; gifCanvas?: HTMLCanvasElement; gifCtx?: CanvasRenderingContext2D; loadedFrames?: ParsedFrame[]; frameIndex?: number; playing?: boolean; lastTime?: number; constructor(params: IIconGraphicAttribute); loadGif(): void; get backgroundWidth(): number; get backgroundHeight(): number; renderGIF(frames: ParsedFrame[]): void; renderFrame(context: CanvasRenderingContext2D, x: number, y: number): void; drawPatch(frame: ParsedFrame): void; manipulate(context: CanvasRenderingContext2D, x: number, y: number): void; setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void; setAttributes(params: Partial, forceUpdateTag?: boolean, context?: ISetAttributeContext): void; failCallback: () => void; } export declare class TextIcon extends Text { attribute: IIconGraphicAttribute; role?: string; tooltip?: IIconBase['tooltip']; constructor(params: ITextGraphicAttribute); }