function isComplexTypedArrayLike( value ) {
	return (
		value !== null &&
		typeof value === 'object' &&

		// Check for standard typed array properties:
		isNonNegativeInteger( value.length ) &&
		value.length <= MAX_LENGTH &&
		typeof value.BYTES_PER_ELEMENT === 'number' &&
		typeof value.byteOffset === 'number' &&
		typeof value.byteLength === 'number' &&

		// Check for properties necessary for complex typed arrays:
		typeof value.get === 'function' &&
		typeof value.set === 'function'
	);
}
Tests if a value is complex-typed-array-like.

@param {*} value - value to test
@returns {boolean} boolean indicating if a value is complex-typed-array-like

@example
var arr = {
    'BYTES_PER_ELEMENT': 8,
    'length': 10,
    'byteOffset': 0,
    'byteLength': 10,
    'get': function get() {},
    'set': function set() {}
};
var val = isComplexTypedArrayLike( arr );
// returns true

@example
var Complex64Array = require( '@stdlib/array/complex64' );

var val = isComplexTypedArrayLike( new Complex64Array( 4 ) );
// returns true

@example
var val = isComplexTypedArrayLike( [] );
// returns false

@example
var val = isComplexTypedArrayLike( {} );
// returns false

@example
var val = isComplexTypedArrayLike( null );
// returns false

@example
var val = isComplexTypedArrayLike( 'beep' );
// returns false