import { Schema as NewSchema } from '@autorest/codemodel';
import { VirtualParameter } from '@azure-tools/codemodel-v3';
import { CommandOperation, VirtualParameter as NewVirtualParameter } from '../utils/command-operation';
import { DeepPartial } from '@azure-tools/codegen';
import { Class, Expression, Namespace, Property, Field, TypeDeclaration } from '@azure-tools/codegen-csharp';
import { State } from '../internal/state';
export declare function createStepper(p: Expression): Expression;
export declare function addCompleterInfo(targetProperty: Property, parameter: VirtualParameter): void;
export declare function NewAddCompleterInfo(targetProperty: Property, parameter: NewVirtualParameter): void;
export declare function isEnumImplementation(schema: NewSchema | undefined): boolean;
export declare function addPSArgumentCompleterAttribute(targetProperty: Property, parameterSchema: any): void;
export declare function addParameterBreakingChange(targetProperty: Property, parameter: any): void;
export declare function addParameterPreviewMessage(targetProperty: Property, parameter: any): void;
export declare function addDefaultInfo(targetProperty: Property, parameter: any): void;
export declare function addInfoAttribute(targetProperty: Property, pType: TypeDeclaration, isRequired: boolean, isReadOnly: boolean, description: string, serializedName: string): void;
export declare function NewAddInfoAttribute(targetProperty: Property, pType: TypeDeclaration, isRequired: boolean, isReadOnly: boolean, description: string, serializedName: string): void;
export declare class CmdletClass extends Class {
    private cancellationToken;
    state: State;
    private readonly eventListener;
    private readonly dropBodyParameter;
    private invocationInfo;
    correlationId: Field;
    processRecordId: Field;
    defaultProfile: Property;
    private readonly thingsToSerialize;
    private bodyParameter?;
    private bodyParameterInfo?;
    private apProp?;
    private operation;
    private debugMode?;
    private variantName;
    private isViaIdentity;
    private hasStreamOutput;
    private outFileParameter?;
    private clientsidePagination?;
    private inputObjectParameterName;
    private apiCall;
    private operationParameters;
    private responses;
    private callbackMethods;
    private serializationMode;
    private disableTransformIdentityType?;
    private flattenUserAssignedIdentity?;
    constructor(namespace: Namespace, operation: CommandOperation, state: State, objectInitializer?: DeepPartial<CmdletClass>);
    init(): Promise<this>;
    get headerComment(): string;
    private AddSwitchViewProperty;
    private FlushResponse;
    private WriteObjectWithViewControl;
    private addCommonStuff;
    private NewImplementProcessRecord;
    private NewImplementProcessRecordAsync;
    private NewImplementWriteObject;
    private ImplementCall;
    private ContainsSpecifiedParameter;
    private ContainsIdentityTypeParameter;
    private ContainsUserAssignedIdentityParameter;
    private GetUserAssignedIdentityParameterTypeDefinition;
    private GetUserAssignedIdentityParameterElementType;
    private GetUserAssignedIdentityPropertyTypeDeclaration;
    private GetUserAssignedIdentityPropertyName;
    private ManagedUserAssignedIdentityPreProcess;
    private ManagedIdentityPreProcessForNewVerbCmdlet;
    private ProcessGetResponseForManagedIdentityUpdateCmdlet;
    private ManagedIdentityUpdateCmdletPreProcess;
    private GetPutPreProcess;
    private NewImplementResponseMethod;
    private NewImplementSerialization;
    private implementConstructors;
    private implementIContext;
    private implementIEventListener;
    private NewAddPowershellParameters;
    /**
     * Add `DoNotExportAttribute` to parameters that should be hidden.
     * @param cmdletParameter parameter in the variant.
     * @param vParam parameter in the code model.
     * @see DoNotExportAttribute
     */
    private addDoNotExport;
    private NewAddClassAttributes;
}
//# sourceMappingURL=class.d.ts.map