/**
 * Remove Duplicates Node - Version 1.1
 * Delete items with matching field values
 */


export interface RemoveDuplicatesV11Params {
/**
 * The fields of the input items to compare to see if they are the same
 * @default allFields
 */
    compare?: 'allFields' | 'allFieldsExcept' | 'selectedFields' | Expression<string>;
/**
 * Fields in the input to exclude from the comparison
 * @displayOptions.show { compare: ["allFieldsExcept"] }
 */
    fieldsToExclude?: string | Expression<string> | PlaceholderValue;
/**
 * Fields in the input to add to the comparison
 * @displayOptions.show { compare: ["selectedFields"] }
 */
    fieldsToCompare?: string | Expression<string> | PlaceholderValue;
/**
 * Options
 * @displayOptions.show { compare: ["allFieldsExcept", "selectedFields"] }
 * @default {}
 */
    options?: {
    /** Whether to disallow referencing child fields using `parent.child` in the field name
     * @default false
     */
    disableDotNotation?: boolean | Expression<boolean>;
    /** Whether to remove any fields that are not being compared. If disabled, will keep the values from the first of the duplicates.
     * @default false
     */
    removeOtherFields?: boolean | Expression<boolean>;
  };
}

interface RemoveDuplicatesV11NodeBase {
  type: 'n8n-nodes-base.removeDuplicates';
  version: 1.1;
}

export type RemoveDuplicatesV11ParamsNode = RemoveDuplicatesV11NodeBase & {
  config: NodeConfig<RemoveDuplicatesV11Params>;
};

export type RemoveDuplicatesV11Node = RemoveDuplicatesV11ParamsNode;