A beginner's method would be to create invisible trigger sprites at the exit areas of a room. On the trigger you have an instance variable, where the value is the name of the next layout to go to. On collision with this trigger you go to layout 'trigger.variable'. This involves building each level as a separate layout.
A more advanced method would be something like reaching an exit in a room, then during that fade you would rebuild the tilemap data to create a different room, usually a json format string which contains the data for the tiles. This builds the new room in the same layout, but you would need to define logic for where the player spawns and probably store room data in an array.