package jetbrains.mps.lang.structure.pluginSolution.plugin; /*Generated by MPS */ import jetbrains.mps.refactoring.participant.MoveNodeRefactoringParticipant; import jetbrains.mps.baseLanguage.tuples.runtime.Tuples; import org.jetbrains.mps.openapi.model.SNodeReference; import java.util.List; import jetbrains.mps.refactoring.participant.RefactoringParticipant; import org.jetbrains.mps.openapi.module.SRepository; import java.util.Collection; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.module.SearchScope; public interface StructureSpecialization<I, F> extends MoveNodeRefactoringParticipant.MoveNodeRefactoringDataCollector<Tuples._2<I, SNodeReference>, Tuples._2<F, SNodeReference>> { void confirm(List<RefactoringParticipant.Option> selectedOptions, Tuples._2<I, SNodeReference> initialState, Tuples._2<F, SNodeReference> finalState, SRepository repository, LanguageStructureMigrationParticipant.MigrationBuilder migrationBuilder, boolean updateModuleDependencies); Collection<SNode> findInstances(I initialState, SearchScope searchScope); void doReplaceInstance(SNode instance, I initialState, F finalState); }