/**
 * Compose the full icon as raw RGBA bytes (no filter prefix) — kept
 * separate from the PNG packaging so tests can inspect the bitmap.
 */
export declare function renderIconRgba(size?: number): Buffer;
/** Build a PNG of the mailpouch icon at the requested size. */
export declare function makeIconPng(size?: number): Buffer;
/** Render a red warning triangle with a white exclamation mark as RGBA. */
export declare function renderWarningRgba(size?: number): Buffer;
/** Build a PNG of the red warning triangle at the requested size. */
export declare function makeWarningIconPng(size?: number): Buffer;
/** Platform-appropriate warning-icon bytes (ICO on Windows, PNG elsewhere). */
export declare function makeWarningTrayIconBytes(platform?: NodeJS.Platform): Buffer;
/**
 * Wrap one or more PNGs into a multi-resolution ICO. Windows picks the
 * closest sub-size to the current DPI scale, so shipping 16/32/48/64 in
 * one ICO keeps the tray crisp across 100/125/150/200 % scaling.
 */
export declare function pngsToIco(pngs: Array<{
    size: number;
    data: Buffer;
}>): Buffer;
/**
 * Return the right-format icon bytes for the given platform.
 *
 * - Windows: multi-resolution ICO with 16/32/48/64 sub-sizes. Windows
 *   picks the closest to the current DPI scale automatically.
 * - macOS / Linux: single 64×64 PNG. systray2 / libappindicator both
 *   accept PNG-base64 and handle downscaling on their end.
 */
export declare function makeTrayIconBytes(platform?: NodeJS.Platform): Buffer;
/** Base64 encoding of the platform-appropriate icon — what systray2 wants. */
export declare function makeTrayIconBase64(platform?: NodeJS.Platform): string;
//# sourceMappingURL=icon.d.ts.map