import type { EventEmitter } from 'eventemitter3';
import type { DeviceModelId } from './id.js';
import type { MXCreativeConsole, MXCreativeConsoleEvents } from './types.js';
import type { MXConsoleControlDefinition } from './controlDefinition.js';
/**
 * A minimal proxy around a MXConsole instance.
 * This is intended to be used by libraries wrapping this that want to add more methods to the MXConsole
 */
export declare class MXCreativeConsoleProxy implements MXCreativeConsole {
    protected readonly device: MXCreativeConsole;
    constructor(device: MXCreativeConsole);
    get CONTROLS(): Readonly<MXConsoleControlDefinition[]>;
    get MODEL(): DeviceModelId;
    get PRODUCT_NAME(): string;
    calculateFillPanelDimensions(...args: Parameters<MXCreativeConsole['calculateFillPanelDimensions']>): ReturnType<MXCreativeConsole['calculateFillPanelDimensions']>;
    close(): Promise<void>;
    getHidDeviceInfo(...args: Parameters<MXCreativeConsole['getHidDeviceInfo']>): ReturnType<MXCreativeConsole['getHidDeviceInfo']>;
    fillKeyColor(...args: Parameters<MXCreativeConsole['fillKeyColor']>): ReturnType<MXCreativeConsole['fillKeyColor']>;
    fillKeyBuffer(...args: Parameters<MXCreativeConsole['fillKeyBuffer']>): ReturnType<MXCreativeConsole['fillKeyBuffer']>;
    fillPanelBuffer(...args: Parameters<MXCreativeConsole['fillPanelBuffer']>): ReturnType<MXCreativeConsole['fillPanelBuffer']>;
    clearKey(...args: Parameters<MXCreativeConsole['clearKey']>): ReturnType<MXCreativeConsole['clearKey']>;
    clearPanel(...args: Parameters<MXCreativeConsole['clearPanel']>): ReturnType<MXCreativeConsole['clearPanel']>;
    setBrightness(...args: Parameters<MXCreativeConsole['setBrightness']>): ReturnType<MXCreativeConsole['setBrightness']>;
    resetToLogo(...args: Parameters<MXCreativeConsole['resetToLogo']>): ReturnType<MXCreativeConsole['resetToLogo']>;
    /**
     * EventEmitter
     */
    eventNames(): Array<EventEmitter.EventNames<MXCreativeConsoleEvents>>;
    listeners<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T): Array<EventEmitter.EventListener<MXCreativeConsoleEvents, T>>;
    listenerCount(event: EventEmitter.EventNames<MXCreativeConsoleEvents>): number;
    emit<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, ...args: EventEmitter.EventArgs<MXCreativeConsoleEvents, T>): boolean;
    /**
     * Add a listener for a given event.
     */
    on<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, fn: EventEmitter.EventListener<MXCreativeConsoleEvents, T>, context?: unknown): this;
    addListener<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, fn: EventEmitter.EventListener<MXCreativeConsoleEvents, T>, context?: unknown): this;
    /**
     * Add a one-time listener for a given event.
     */
    once<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, fn: EventEmitter.EventListener<MXCreativeConsoleEvents, T>, context?: unknown): this;
    /**
     * Remove the listeners of a given event.
     */
    removeListener<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, fn?: EventEmitter.EventListener<MXCreativeConsoleEvents, T>, context?: unknown, once?: boolean): this;
    off<T extends EventEmitter.EventNames<MXCreativeConsoleEvents>>(event: T, fn?: EventEmitter.EventListener<MXCreativeConsoleEvents, T>, context?: unknown, once?: boolean): this;
    removeAllListeners(event?: EventEmitter.EventNames<MXCreativeConsoleEvents>): this;
}
//# sourceMappingURL=proxy.d.ts.map