import type { HIDDevice } from './hid-device.js';
import { DeviceModelId } from './id.js';
import type { StreamDeck } from './types.js';
import type { OpenStreamDeckOptions } from './models/base.js';
import type { PropertiesService } from './services/properties/interface.js';
export * from './types.js';
export * from './id.js';
export * from './controlDefinition.js';
export type { PreparedBuffer } from './preparedBuffer.js';
export type { HIDDevice, HIDDeviceInfo, HIDDeviceEvents, ChildHIDDeviceInfo } from './hid-device.js';
export type { OpenStreamDeckOptions } from './models/base.js';
export { StreamDeckProxy } from './proxy.js';
export type { PropertiesService } from './services/properties/interface.js';
export { uint8ArrayToDataView } from './util.js';
export { parseAllFirmwareVersionsHelper } from './services/properties/all-firmware.js';
/** Elgato vendor id */
export declare const VENDOR_ID = 4057;
export declare enum DeviceModelType {
    STREAMDECK = "streamdeck",
    PEDAL = "pedal",
    NETWORK_DOCK = "network-dock"
}
export interface DeviceModelSpec {
    id: DeviceModelId;
    type: DeviceModelType;
    productIds: number[];
    productName: string;
    factory: (device: HIDDevice, options: Required<OpenStreamDeckOptions>, tcpPropertiesService?: PropertiesService) => StreamDeck;
    hasNativeTcp: boolean;
}
/** List of all the known models, and the classes to use them */
export declare const DEVICE_MODELS2: {
    [key in DeviceModelId]: Omit<DeviceModelSpec, 'id' | 'productName'>;
};
/** @deprecated maybe? */
export declare const DEVICE_MODELS: DeviceModelSpec[];
//# sourceMappingURL=index.d.ts.map