/// <reference types="node" />
declare const enum Compression {
    NONE = 0,
    BI_RLE8 = 1,
    BI_RLE4 = 2,
    BI_BIT_FIELDS = 3,
    BI_ALPHA_BIT_FIELDS = 6
}
declare interface IColor {
    red: number;
    green: number;
    blue: number;
    quad: number;
}
declare interface IDecoderOptions {
    toRGBA?: boolean;
}
declare interface IImage {
    flag: string;
    fileSize: number;
    reserved1?: number;
    reserved2?: number;
    offset: number;
    headerSize: number;
    width: number;
    height: number;
    planes?: number;
    bitPP: number;
    compression?: Compression;
    rawSize: number;
    hr?: number;
    vr?: number;
    colors?: number;
    importantColors?: number;
    palette?: IColor[];
    data: Buffer;
}
export declare function maskColor(maskRed: number, maskGreen: number, maskBlue: number, maskAlpha: number): {
    shiftRed: (x: number) => number;
    shiftGreen: (x: number) => number;
    shiftBlue: (x: number) => number;
    shiftAlpha: (x: number) => number;
};
export default class BmpDecoder implements IImage {
    flag: string;
    fileSize: number;
    reserved1: number;
    reserved2: number;
    offset: number;
    headerSize: number;
    width: number;
    height: number;
    planes: number;
    bitPP: number;
    compression?: Compression;
    rawSize: number;
    hr: number;
    vr: number;
    colors: number;
    importantColors: number;
    palette: IColor[];
    data: Buffer;
    private maskRed;
    private maskGreen;
    private maskBlue;
    private maskAlpha;
    private readonly toRGBA;
    private pos;
    private bottomUp;
    private readonly buffer;
    private readonly locRed;
    private readonly locGreen;
    private readonly locBlue;
    private readonly locAlpha;
    private shiftRed;
    private shiftGreen;
    private shiftBlue;
    private shiftAlpha;
    constructor(buffer: Buffer, { toRGBA }?: IDecoderOptions);
    private parseHeader;
    private parseRGBA;
    private bit1;
    private bit4;
    private bit8;
    private bit16;
    private bit24;
    private bit32;
    private scanImage;
    private readUInt32LE;
    private setPixelData;
}
export {};
