"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.Events = exports.verbEnum = exports.ErrorCategory = exports.NotSuggestDefaultParameterSetAttribute = exports.HttpPathAttribute = exports.PSArgumentCompleterAttribute = exports.ParameterCategory = exports.ExportAsAttribute = exports.CategoryAttribute = exports.ProfileAttribute = exports.GeneratedAttribute = exports.InternalExportAttribute = exports.DoNotExportAttribute = exports.ExternalDocsAttribute = exports.DescriptionAttribute = exports.AsyncJob = exports.AsyncCommandRuntime = exports.ArgumentCompleterAttribute = exports.CompletionResultType = exports.CommandAst = exports.CompletionResult = exports.IArgumentCompleter = exports.NullableBoolean = exports.SwitchParameter = exports.ErrorRecord = exports.OutputTypeAttribute = exports.ResourceGroupCompleter = exports.TypeConverterAttribute = exports.AliasAttribute = exports.Alias = exports.ValidateNotNull = exports.PSTypeConverter = exports.InvocationInfo = exports.AllowEmptyCollectionAttribute = exports.ParameterAttribute = exports.CmdletAttribute = exports.PSObject = exports.PSCredential = exports.PSCmdlet = exports.RunspaceFactory = exports.DefaultRunspace = void 0;
const codegen_1 = require("@azure-tools/codegen");
const codegen_csharp_1 = require("@azure-tools/codegen-csharp");
const exports_1 = require("../llcsharp/exports");
const sma = new codegen_csharp_1.Namespace('global::System.Management.Automation');
const rest = new codegen_csharp_1.Namespace('global::Microsoft.Rest');
exports.DefaultRunspace = new codegen_csharp_1.LiteralExpression(`${sma}.Runspaces.Runspace.DefaultRunspace`);
exports.RunspaceFactory = new codegen_csharp_1.ClassType(new codegen_csharp_1.Namespace('global::System.Management.Automation.Runspaces'), 'RunspaceFactory');
exports.PSCmdlet = new codegen_csharp_1.Class(new codegen_csharp_1.Namespace('global::System.Management.Automation'), 'PSCmdlet');
exports.PSCredential = new codegen_csharp_1.ClassType(sma, 'PSCredential');
exports.PSObject = new codegen_csharp_1.ClassType(sma, 'PSObject');
exports.CmdletAttribute = new codegen_csharp_1.ClassType(sma, 'Cmdlet');
exports.ParameterAttribute = new codegen_csharp_1.ClassType(sma, 'Parameter');
exports.AllowEmptyCollectionAttribute = new codegen_csharp_1.ClassType(sma, 'AllowEmptyCollection');
exports.InvocationInfo = new codegen_csharp_1.ClassType(sma, 'InvocationInfo');
exports.PSTypeConverter = new codegen_csharp_1.Class(sma, 'PSTypeConverter');
exports.ValidateNotNull = new codegen_csharp_1.ClassType(sma, 'ValidateNotNull');
exports.Alias = new codegen_csharp_1.ClassType(sma, 'Alias');
exports.AliasAttribute = new codegen_csharp_1.ClassType(sma, 'Alias');
exports.TypeConverterAttribute = new codegen_csharp_1.ClassType('System.ComponentModel', 'TypeConverter');
exports.ResourceGroupCompleter = new codegen_csharp_1.ClassType(sma, 'ResourceGroupCompleter');
exports.OutputTypeAttribute = new codegen_csharp_1.ClassType(sma, 'OutputType');
exports.ErrorRecord = new codegen_csharp_1.ClassType(sma, 'ErrorRecord');
exports.SwitchParameter = new codegen_csharp_1.ClassType(sma, 'SwitchParameter');
exports.NullableBoolean = new codegen_csharp_1.ClassType(new codegen_csharp_1.Namespace('System'), 'Boolean?');
exports.IArgumentCompleter = { allProperties: [], declaration: 'System.Management.Automation.IArgumentCompleter' };
exports.CompletionResult = new codegen_csharp_1.ClassType(sma, 'CompletionResult');
exports.CommandAst = new codegen_csharp_1.ClassType(`${sma}.Language`, 'CommandAst');
exports.CompletionResultType = new codegen_csharp_1.ClassType(sma, 'CompletionResultType');
exports.ArgumentCompleterAttribute = new codegen_csharp_1.ClassType(sma, 'ArgumentCompleter');
exports.AsyncCommandRuntime = new codegen_csharp_1.ClassType(exports_1.ClientRuntime, 'PowerShell.AsyncCommandRuntime');
exports.AsyncJob = new codegen_csharp_1.ClassType(exports_1.ClientRuntime, 'PowerShell.AsyncJob');
exports.DescriptionAttribute = new codegen_csharp_1.ClassType(rest, 'Description');
exports.ExternalDocsAttribute = new codegen_csharp_1.ClassType(rest, 'ExternalDocs');
exports.DoNotExportAttribute = new codegen_csharp_1.ClassType(rest, 'DoNotExport');
exports.InternalExportAttribute = new codegen_csharp_1.ClassType(rest, 'InternalExport');
exports.GeneratedAttribute = new codegen_csharp_1.ClassType(rest, 'Generated');
exports.ProfileAttribute = new codegen_csharp_1.ClassType(rest, 'Profile');
exports.CategoryAttribute = new codegen_csharp_1.ClassType(rest, 'Category');
exports.ExportAsAttribute = new codegen_csharp_1.ClassType(rest, 'ExportAs');
exports.ParameterCategory = new codegen_csharp_1.ClassType(rest, 'ParameterCategory');
exports.PSArgumentCompleterAttribute = new codegen_csharp_1.ClassType(rest, 'PSArgumentCompleterAttribute');
exports.HttpPathAttribute = new codegen_csharp_1.ClassType(rest, 'HttpPath');
exports.NotSuggestDefaultParameterSetAttribute = new codegen_csharp_1.ClassType(rest, 'NotSuggestDefaultParameterSet');
function ErrorCategory(category) {
    return new codegen_csharp_1.LiteralExpression(`${sma}.ErrorCategory.${category}`);
}
exports.ErrorCategory = ErrorCategory;
function verbEnum(category, verb) {
    return new codegen_csharp_1.LiteralExpression(`${category}.${verb}`);
}
exports.verbEnum = verbEnum;
exports.Events = (0, codegen_1.intersect)(exports_1.ClientRuntime.Events, {
    CmdletProcessRecordStart: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletProcessRecordStart`),
    CmdletProcessRecordAsyncStart: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletProcessRecordAsyncStart`),
    CmdletException: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletException`),
    CmdletGetPipeline: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletGetPipeline`),
    CmdletBeforeAPICall: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletBeforeAPICall`),
    CmdletAfterAPICall: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletAfterAPICall`),
    CmdletBeginProcessing: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletBeginProcessing`),
    CmdletEndProcessing: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletEndProcessing`),
    CmdletProcessRecordEnd: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletProcessRecordEnd`),
    CmdletProcessRecordAsyncEnd: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.CmdletProcessRecordAsyncEnd`),
    FollowingNextLink: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.FollowingNextLink`),
    Verbose: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.Verbose`),
    Debug: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.Debug`),
    Information: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.Information`),
    Error: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.Error`),
    Warning: new codegen_csharp_1.LiteralExpression(`${exports_1.ClientRuntime.Events.declaration}.Warning`),
});
//# sourceMappingURL=powershell-declarations.js.map