         hintViewController.viewType = .default
     }
 
-    func setHintHidden(_ hidden: Bool) {
+    func setHintHidden(_ hidden: Bool, completion: (() -> Void)? = nil) {        
         guard
             isHintHidden != hidden,
             let presenter = presenter,
             presenter.presentedViewController == nil
         else {
+            if let completion = completion {
+                completion()
+            }
             return
         }
 

            if hidden {
                self.adjustSpacingIfPresenterHasSecondToolbar(hintHidden: hidden)
                self.removeHint()
            } else {
                self.dismissHint()
            }
        })
    }

        }
    }

    func dismissHint(completion: (() -> Void)? = nil) {
        self.task?.cancel()
        let task = DispatchWorkItem { [weak self] in
            self?.setHintHidden(true)
            if let completion = completion {
                completion()
            }
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + hintVisibilityTime , execute: task)
        self.task = task
