import type { HIDDevice } from '../../hid-device.js';
import type { Dimension, KeyIndex } from '../../id.js';
import type { StreamDeckProperties } from '../../models/base.js';
import type { FillPanelDimensionsOptions, FillImageOptions, FillPanelOptions } from '../../types.js';
import type { StreamdeckImageWriter } from '../imageWriter/types.js';
import type { ButtonsLcdDisplayService } from './interface.js';
import type { ButtonLcdImagePacker } from '../imagePacker/interface.js';
import { type PreparedBuffer } from '../../preparedBuffer.js';
export declare class DefaultButtonsLcdService implements ButtonsLcdDisplayService {
    #private;
    constructor(imageWriter: StreamdeckImageWriter, imagePacker: ButtonLcdImagePacker, device: Pick<HIDDevice, 'sendReports' | 'sendFeatureReport'>, deviceProperties: Readonly<StreamDeckProperties>);
    private getLcdButtonControls;
    private calculateLcdGridSpan;
    private calculateDimensionsFromGridSpan;
    calculateFillPanelDimensions(options: FillPanelDimensionsOptions | undefined): Dimension | null;
    clearPanel(): Promise<void>;
    clearKey(keyIndex: KeyIndex): Promise<void>;
    fillKeyColor(keyIndex: KeyIndex, r: number, g: number, b: number): Promise<void>;
    fillKeyBuffer(keyIndex: KeyIndex, imageBuffer: Uint8Array | Uint8ClampedArray, options?: FillImageOptions): Promise<void>;
    private prepareFillKeyBufferInner;
    prepareFillKeyBuffer(keyIndex: KeyIndex, imageBuffer: Uint8Array | Uint8ClampedArray, options: FillImageOptions | undefined, jsonSafe: boolean | undefined): Promise<PreparedBuffer>;
    fillPanelBuffer(imageBuffer: Uint8Array | Uint8ClampedArray, options?: FillPanelOptions): Promise<void>;
    private prepareFillPanelBufferInner;
    prepareFillPanelBuffer(imageBuffer: Uint8Array | Uint8ClampedArray, options: FillPanelOptions | undefined, jsonSafe: boolean | undefined): Promise<PreparedBuffer>;
    private sendKeyRgb;
    private fillImageRangeControl;
    private prepareFillImageRangeControl;
    private checkRGBValue;
    private checkSourceFormat;
}
//# sourceMappingURL=default.d.ts.map