import { type Context } from 'koa';
import { type RGBA } from 'sharp';
interface ServeIconOptions {
    /**
     * If specified, fill the background with this color.
     */
    background?: RGBA | string;
    /**
     * If true, cache the icon for a week / immutable.
     */
    cache?: boolean;
    /**
     * The name of a fallback icon to use.
     */
    fallback: string;
    /**
     * The height to scale the image to.
     */
    height?: number;
    /**
     * The icon to render.
     */
    icon?: Buffer;
    /**
     * If true, the maskable icon is preferred over the regular icon. If no maskable icon is defined,
     * the icon will be scaled to fit within a maskable icon diameter (80% diameter).
     */
    maskable?: boolean;
    /**
     * The maskable icon to render if this is preferred.
     */
    maskableIcon?: Buffer;
    /**
     * If true, render the raw icon. In this case all other options are ignored.
     */
    raw?: boolean;
    /**
     * The width to scale the image to.
     */
    width?: number;
}
export declare function serveIcon(ctx: Context, { background, cache, fallback, height, icon, maskable, maskableIcon, raw, width, }: ServeIconOptions): Promise<void>;
export {};
