import { DeepPartial } from "@azure-tools/codegen"; import { Property } from "./property"; import { Schema } from "./schema"; import { Value } from "./value"; export declare enum ImplementationLocation { /** should be exposed as a method parameter in the operation */ Method = "Method", /** should be exposed as a client parameter (not exposed in the operation directly) */ Client = "Client", /** should be used as input to constructing the context of the client (ie, 'profile') */ Context = "Context" } /** a definition of an discrete input for an operation */ export interface Parameter extends Value { /** suggested implementation location for this parameter */ implementation?: ImplementationLocation; /** When a parameter is flattened, it will be left in the list, but marked hidden (so, don't generate those!) */ flattened?: boolean; /** When a parameter is grouped into another, this will tell where the parameter got grouped into. */ groupedBy?: Parameter; /** * If this parameter is only part of the body request(for multipart and form bodies.) */ isPartialBody?: boolean; } export declare class Parameter extends Value implements Parameter { constructor(name: string, description: string, schema: Schema, initializer?: DeepPartial); } export interface VirtualParameter extends Parameter { /** the original body parameter that this parameter is in effect replacing */ originalParameter: Parameter; /** if this parameter is for a nested property, this is the path of properties it takes to get there */ pathToProperty: Array; /** the target property this virtual parameter represents */ targetProperty: Property; } export declare class VirtualParameter extends Parameter implements VirtualParameter { constructor(name: string, description: string, schema: Schema, initializer?: DeepPartial); } export declare function isVirtualParameter(parameter: Parameter): parameter is VirtualParameter; //# sourceMappingURL=parameter.d.ts.map