"use strict";
/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.unsafeArrayToTuple = void 0;
// This block is kept here to ensure the above example behaves as documented, and can be copied into the example to update it as needed.
{
    /* eslint-enable @typescript-eslint/no-unused-vars */
}
/**
 * This is unsafe, meaning that the returned value might not match its type.
 *
 * For the result to match its type, T must be a union of the types of each item in `items` in the order that they occur.
 * For this to be possible, there must be no duplicate or overlapping types.
 * This is fragile and must be used with care.
 *
 * @remarks
 * The main use-case for this is recovering lost information from {@link AllowedTypes} which is necessary to preserve when using them with {@link Input} APIs.
 * Since {@link AllowedTypes} is actually order independent, it is somewhat safer when used to produce `AllowedTypes`.
 *
 * @example
 * ```typescript
 * // Gives imprecise type (typeof A | typeof B)[]
 * const schemaBad = [A, B];
 * // Fixes the type to be [typeof A, typeof B]
 * const schema = unsafeArrayToTuple(schemaBad);
 *
 * const config = new TreeViewConfiguration({ schema });
 * ```
 * @alpha
 */
function unsafeArrayToTuple(items) {
    return items;
}
exports.unsafeArrayToTuple = unsafeArrayToTuple;
//# sourceMappingURL=typeUtils.js.map