// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_QUICK_DELETE_COMMANDS_H_
#define IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_QUICK_DELETE_COMMANDS_H_

#import "base/ios/block_types.h"

@class UIViewController;

// Commands related to Quick Delete.
@protocol QuickDeleteCommands

// Shows Quick Delete and indicates if the radial wipe animation can be
// performed. The animation should only be performed if Quick Delete is opened
// on top of a tab or the tab grid.
- (void)showQuickDeleteAndCanPerformRadialWipeAnimation:
    (BOOL)canPerformRadialWipeAnimation;

// Stops Quick Delete.
- (void)stopQuickDelete;

// Stops the Quick Delete UI and opens the "Password Settings" page.
- (void)stopQuickDeleteAndOpenPasswordSettingsPage;

// Dismisses the Quick Delete UI along with any other UIs that triggered it. In
// practice, it dismisses everything on top of the BrowserViewController. On
// dismissal completion, runs `completion` followed by actually stopping Quick
// Delete and any others UIs, such as History or Privacy Settings.
- (void)stopQuickDeleteForAnimationWithCompletion:(ProceduralBlock)completion;

@end

#endif  // IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_QUICK_DELETE_COMMANDS_H_
