/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Sets a column's value by composing a string from a source template, then optionally applying a regex-replace to that intermediate string.
 * @export
 * @interface TemplateSetValue
 */
export interface TemplateSetValue {
    /**
     * Required. Full name of the exact type used.
     * @type {string}
     * @memberof TemplateSetValue
     */
    concreteType: TemplateSetValueConcreteTypeEnum;
    /**
     * Target column name to update.
     * @type {string}
     * @memberof TemplateSetValue
     */
    columnName?: string;
    /**
     * Required. Template string with column placeholders in {columnName} format. Example: '{firstName} {lastName}' concatenates two columns with a space. Invalid column names in placeholders will trigger onMissingValue behavior.
     * @type {string}
     * @memberof TemplateSetValue
     */
    sourceTemplate?: string;
    /**
     * Optional. A Java-compatible regex pattern to apply to the intermediate string generated by 'sourceTemplate'.
     * @type {string}
     * @memberof TemplateSetValue
     */
    pattern?: string;
    /**
     * Optional. The replacement string using regex capture group references ($1, $2, etc.). Only used when 'pattern' is provided. Examples: '$1-$2' to join groups with a dash, '$2-group-$1' to reorder. If 'pattern' is specified without 'replacement', defaults to '$1' (extracts first capture group).
     * @type {string}
     * @memberof TemplateSetValue
     */
    replacement?: string;
    /**
     * Action if 'pattern' is provided but does not match. SET_NULL sets the value to NULL. SET_UNDEFINED removes the key from the JSON object. SKIP_UPDATE leaves the existing value unchanged.
     * @type {string}
     * @memberof TemplateSetValue
     */
    onMatchFailure?: TemplateSetValueOnMatchFailureEnum;
    /**
     * Action if a column referenced in 'sourceTemplate' is null/undefined. SET_NULL sets the value to NULL. SET_UNDEFINED removes the key from the JSON object. SKIP_UPDATE leaves the existing value unchanged. USE_EMPTY_STRING replaces the missing value with '' (empty string) when interpolating the template.
     * @type {string}
     * @memberof TemplateSetValue
     */
    onMissingValue?: TemplateSetValueOnMissingValueEnum;
}
/**
 * @export
 */
export declare const TemplateSetValueConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_grid_update_TemplateSetValue: "org.sagebionetworks.repo.model.grid.update.TemplateSetValue";
};
export type TemplateSetValueConcreteTypeEnum = typeof TemplateSetValueConcreteTypeEnum[keyof typeof TemplateSetValueConcreteTypeEnum];
/**
 * @export
 */
export declare const TemplateSetValueOnMatchFailureEnum: {
    readonly SET_NULL: "SET_NULL";
    readonly SET_UNDEFINED: "SET_UNDEFINED";
    readonly SKIP_UPDATE: "SKIP_UPDATE";
};
export type TemplateSetValueOnMatchFailureEnum = typeof TemplateSetValueOnMatchFailureEnum[keyof typeof TemplateSetValueOnMatchFailureEnum];
/**
 * @export
 */
export declare const TemplateSetValueOnMissingValueEnum: {
    readonly SET_NULL: "SET_NULL";
    readonly SET_UNDEFINED: "SET_UNDEFINED";
    readonly SKIP_UPDATE: "SKIP_UPDATE";
    readonly USE_EMPTY_STRING: "USE_EMPTY_STRING";
};
export type TemplateSetValueOnMissingValueEnum = typeof TemplateSetValueOnMissingValueEnum[keyof typeof TemplateSetValueOnMissingValueEnum];
/**
 * Check if a given object implements the TemplateSetValue interface.
 */
export declare function instanceOfTemplateSetValue(value: object): value is TemplateSetValue;
export declare function TemplateSetValueFromJSON(json: any): TemplateSetValue;
export declare function TemplateSetValueFromJSONTyped(json: any, ignoreDiscriminator: boolean): TemplateSetValue;
export declare function TemplateSetValueToJSON(json: any): TemplateSetValue;
export declare function TemplateSetValueToJSONTyped(value?: TemplateSetValue | null, ignoreDiscriminator?: boolean): any;
