import EventEmitter from "eventemitter3";
import { type AsyncIterableWithResolvers } from "./asyncIterator";
import { PrinterSeries } from "./PrinterConst";
export declare const enum FilterDeviceType {
    TYPE_ALL = 0,
    TYPE_PRINTER = 1,
    TYPE_HYBRID_PRINTER = 2,
    TYPE_DISPLAY = 3,
    TYPE_KEYBOARD = 4,
    TYPE_SCANNER = 5,
    TYPE_SERIAL = 6,
    TYPE_CCHANGER = 7,
    TYPE_POS_KEYBOARD = 8,
    TYPE_CAT = 9,
    TYPE_MSR = 10,
    TYPE_OTHER_PERIPHERAL = 11,
    TYPE_GFE = 12
}
export declare const enum FilterPortType {
    PORTTYPE_ALL = 0,
    PORTTYPE_TCP = 1,
    PORTTYPE_BLUETOOTH = 2,
    PORTTYPE_USB = 3
}
export declare const enum FilterModel {
    MODEL_ALL = 0
}
export declare const enum FilterEpson {
    FILTER_NONE = 1,
    FILTER_NAME = 0
}
export type FilterOptions = {
    deviceType?: FilterDeviceType;
    portType?: FilterPortType;
    boardcast?: string;
    deviceModel?: FilterModel;
    epsonFilter?: FilterEpson;
    bondedDevices?: boolean;
    usbDeviceName?: boolean;
};
export type DiscoveryOptions = {
    verbose?: boolean;
};
export type DeviceInfo = {
    deviceType: FilterDeviceType;
    deviceName: string;
    target: string;
    ipAddress?: string;
    macAddress?: string;
    bdAddress?: string;
    leBdAddress?: string;
};
export declare const getPrinterSeriesFromDeviceName: (name: string) => PrinterSeries | undefined;
/**
 * Event emitter implementation of the printer discovery service.
 */
export declare class PrinterDiscovery extends EventEmitter<{
    deviceFound: [DeviceInfo];
}> implements AsyncDisposable {
    #private;
    readonly options?: DiscoveryOptions | undefined;
    constructor(filter?: FilterOptions, options?: DiscoveryOptions | undefined);
    dispose(): Promise<void>;
    [Symbol.asyncDispose](): Promise<void>;
}
/**
 * Asynchronous iterator for discovered printers.
 */
export declare function discoverPrinters(filter?: FilterOptions, options?: DiscoveryOptions): Promise<AsyncIterableWithResolvers<DeviceInfo, unknown, unknown>>;
//# sourceMappingURL=Discovery.d.ts.map