import { Model, ModelProperty, Program, Value } from "@typespec/compiler"; export interface MergePatchPropertyOverrides { optional?: boolean; erasable?: boolean; updateBehavior?: "merge" | "replace"; } export declare const getMergePatchSource: (program: Program, type: Model) => Model | undefined, setMergePatchSource: (program: Program, type: Model, value: Model) => void; export declare const getMergePatchPropertySource: (program: Program, type: ModelProperty) => ModelProperty | undefined, setMergePatchPropertySource: (program: Program, type: ModelProperty, value: ModelProperty) => void; export declare const getMergePatchPropertyOverrides: (program: Program, type: ModelProperty) => MergePatchPropertyOverrides | undefined, setMergePatchPropertyOverrides: (program: Program, type: ModelProperty, value: MergePatchPropertyOverrides) => void; /** * Determines if the given model is part of a mergePatch transform * @param program The compiled TypeSpec program * @param model The model to check * @returns true if the model was generated using a mergePatch template, otherwise false */ export declare function isMergePatch(program: Program, model: Model): boolean; /** The characteristics of the property as part of a mergePatch request body */ export interface MergePatchProperties { /** Can the property accept null */ erasable: boolean; /** How does the property update the corresponding resource property */ updateBehavior: "merge" | "replace"; /** If this property is null, what will the corresponding value of the resource be set to (undefined if the resource property has no default) */ erasedValue?: Value; /** The sourceProperty of this property */ sourceProperty?: ModelProperty; } /** * Returns the MergePatch characteristics of the property, if the property is used in a MergePatch request * @param program The compiled TypeSpec program * @param property The model property to check * @returns The characteristics of the property in a MergePatch request (or undefined if the property is not part of a mErgePatch request) */ export declare function getMergePatchProperties(program: Program, property: ModelProperty): MergePatchProperties | undefined; //# sourceMappingURL=helpers.d.ts.map