///
export declare enum ScsiCommand {
FORMAT_UNIT = 4,
INQUIRY = 18,
MODE_SELECT_6 = 21,
MODE_SELECT = 85,
MODE_SENSE_6 = 26,
MODE_SENSE = 90,
PA_MEDIA_REMOVAL = 30,
READ_10 = 40,
READ_12 = 168,
READ_CAPACITY = 37,
READ_CAPACITIES = 35,
REQUEST_SENSE = 3,
REZERO_UNIT = 1,
SEEK = 43,
SEND_DIAGNOSTIC = 29,
START_STOP_UNIT = 27,
TEST_UNIT_READY = 0,
VERIFY = 47,
WRITE_10 = 42,
WRITE_12 = 170,
WRITE_VERIFY = 46,
READ_CD = 190,
READ_CD_MSF = 185,
READ_HEADER = 68,
READ_SUBCHANNEL = 66,
READ_TOC = 67,
STOP_PLAY_SCAN = 78,
MECHANISM_STATUS = 189,
GET_EVENT_STATUS = 74
}
declare enum FddState {
MEDIA_NOT_PRESENT = 0,
MEDIA_CHANGED = 1,
DEVICE_READY = 2
}
export declare class VirtualDevice {
keepaliveTime: number;
fdd_state: FddState;
event_state: number;
protected processCommand(buf: Buffer): Promise;
protected handleSendDiagnostics(): void;
protected handleRead(buf: Buffer): Promise;
protected handlePaMediaRemoval(buf: Buffer): void;
protected handleStartStopUnit(buf: Buffer): boolean;
protected handleTestUnitReady(): void;
protected handleReadCapacity(): Promise;
protected handleReadToc(buf: Buffer): Promise;
protected handleModeSense(buf: Buffer): void;
protected handleGetEventStatus(buf: Buffer): void;
protected media: number;
protected senseKey: number;
protected asc: number;
protected ascq: number;
protected sendCommand(senseKey: number, asc: number, ascq: number, payload?: Buffer): void;
protected keepaliveTimeout?: NodeJS.Timeout;
protected resetKeepaliveTimeout(): void;
protected cmdQueue: Buffer;
receive(chunk: Buffer): Promise;
sendDisconnect(): void;
protected send(data: Buffer): void;
protected mediaIsPresent(): boolean;
/** returns current device size in bytes */
protected mediaSize(): Promise;
/**
* positioned read of `buffer.length` bytes on device.
* `pos` is in bytes. data must be placed at the buffer.
* if the position is out of bounds, return true
*/
protected mediaRead(buffer: Buffer, pos: number): Promise;
protected notifyMediaEject(): void;
protected notifyMediaRemoval(prevented: boolean): void;
}
export default VirtualDevice;