import { IImageData } from '../types.ts'; import { Icon } from '../icon.ts'; /** * Icon entry. */ export interface IIconIcoEntry { /** * Icon width. */ readonly width: number; /** * Icon height. */ readonly height: number; /** * Icon data. */ readonly data: Readonly; } /** * IconIco object. */ export declare class IconIco extends Icon { /** * List of icon entries. */ entries: IIconIcoEntry[]; /** * IconIco constructor. */ constructor(); /** * Add an icon from PNG data. * * @param data PNG data. * @param png Encode entry as PNG. * @param raw Use raw PNG data without re-encoding, if using PNG format. */ addFromPng(data: Readonly, png?: boolean | null, raw?: boolean): Promise; /** * Add an icon from RGBA image data. * * @param imageData RGBA image data. * @param png Encode entry as PNG. */ addFromRgba(imageData: Readonly, png?: boolean | null): Promise; /** * Encode icon. * * @returns Encoded icon. */ encode(): Uint8Array; /** * Check if height requires legacy bitmap for compatiblity. * * @param width Image width. * @param height Image height. * @returns Returns true if requires legacy bitmap. */ sizeRequiresLegacyBitmap(width: number, height: number): boolean; /** * Encode icon directory header. * * @param count Entry count. * @returns Encoded header. */ protected _encodeIcoDir(count: number): Uint8Array; /** * Encode icon directory entry. * * @param entry Icon entry. * @param offset File offset. * @returns Encoded entry. */ protected _encodeIcoDirEntry(entry: Readonly, offset: number): Uint8Array; /** * Encode RGBA image to BMP data. * * @param imageData Image data. * @returns BMP data. */ protected _encodeRgbaToBmp(imageData: Readonly): Uint8Array; }