/// <reference types="node" />
import { CommandType } from '../enums';
export interface AbstractCommand {
    deserializeReply(payload: Buffer): any;
}
export declare abstract class AbstractCommand {
    abstract readonly commandType: CommandType;
    abstract serialize(): Buffer;
}
export declare abstract class ViscaCommand extends AbstractCommand {
    readonly commandType = CommandType.ViscaCommand;
    protected toIntWithZeroes(n: number): number;
    protected toBigIntWithZeroes(n: number): bigint;
}
export declare abstract class ViscaInquiryCommand extends AbstractCommand {
    readonly commandType = CommandType.ViscaInquiry;
    abstract deserializeReply(payload: Buffer): unknown;
    protected fromIntWithZeroes(n: number): number;
    protected fromBigIntWithZeroes(x: bigint): number;
    protected from2sComplement(x: number): number;
}
export declare abstract class ControlCommand extends AbstractCommand {
    readonly commandType = CommandType.ControlCommand;
}
//# sourceMappingURL=abstractCommand.d.ts.map