import EventEmitter from "events";
import { ChannelProps, IAntDevice, IChannel, ISensor } from "./types";
export type MessageInfo = {
    msgId: number;
    data?: Buffer;
    timeout?: number;
    resolve: any;
    reject: any;
};
export declare const START_TIMEOUT = 5000;
export declare const CLOSE_TIMEOUT = 2000;
export declare const MAX_CHANNEL_COLLISION = 10;
export default class Channel extends EventEmitter implements IChannel {
    protected channelNo: number;
    protected device: IAntDevice;
    protected isScanner: boolean;
    protected isSensor: boolean;
    protected isWriting: boolean;
    protected messageQueue: MessageInfo[];
    protected props: ChannelProps;
    protected attachedSensor: ISensor;
    protected ackErrorCount: number;
    constructor(channelNo: number, device: IAntDevice, props?: ChannelProps);
    onDeviceData(profile: string, deviceID: number, deviceState: any): void;
    getChannelNo(): number;
    getDevice(): IAntDevice;
    setProps(props: ChannelProps): void;
    getProps(): ChannelProps;
    startScanner(): Promise<boolean>;
    stopScanner(): Promise<boolean>;
    startSensor(sensor: ISensor): Promise<boolean>;
    stopAllSensors(): Promise<boolean>;
    stopSensor(sensor: ISensor): Promise<boolean>;
    restartSensor(): Promise<boolean>;
    protected closeChannel(props?: {
        restart?: boolean;
    }): Promise<void>;
    attach(sensor: ISensor): any;
    detach(sensor: ISensor): void;
    onMessage(data: Buffer): void;
    sendMessage(data: Buffer, opts?: {
        timeout?: number;
    }): Promise<any>;
    flush(): void;
}
