"use strict";
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.IntrinsicOperation = void 0;
const extensions_1 = require("./extensions");
const linq_1 = require("@azure-tools/linq");
const uid_1 = require("./uid");
class IntrinsicOperation extends extensions_1.Extensions {
    constructor(name, deprecated, pure, initializer) {
        super();
        this.responses = new linq_1.Dictionary();
        this.operationType = 'IntrinsicOperation';
        this.details = {
            default: {
                uid: `intrinsic-operation:${(0, uid_1.uid)()}`,
                description: (initializer === null || initializer === void 0 ? void 0 : initializer.description) || '',
                name,
            }
        };
        this.deprecated = deprecated;
        this.pure = pure;
        this.apply(initializer);
    }
}
exports.IntrinsicOperation = IntrinsicOperation;
//# sourceMappingURL=programatic-operation.js.map