         }
     }
 
-    func 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

        hintViewController.viewType = .default
    }

    func setHintHidden(_ hidden: Bool) {
        guard
            isHintHidden != hidden,
            let presenter = presenter,
            presenter.presentedViewController == nil
        else {
            return
        }


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