import type { NobjcObject } from "objc-js";
import type { _VSAccountManager } from "./VSAccountManager.js";
import type { _NSString } from "../Foundation/NSString.js";
export interface _VSAccountManagerDelegate {
    /**
     * Called when the account manager needs user interaction to complete a request. @param accountManager The account manager instance that needs to show the view controller. @param viewController A view controller that needs to be presented to the user. You must use -presentViewController:animated:completion: to begin presenting this view controller before returning from this method.
     */
    accountManager$presentViewController$?(accountManager: _VSAccountManager, viewController: NobjcObject): void;
    /**
     * Called when the account manager is finished using the presented view controller. @param accountManager The account manager instance that previously asked to show the view controller. @param viewController The view controller that is being presented to the user. You must use -dismissViewControllerAnimated:completion: to begin dismissing the view controller before returning from this method.
     */
    accountManager$dismissViewController$?(accountManager: _VSAccountManager, viewController: NobjcObject): void;
    /**
     * This method can be used to temporarily refrain from authenticating with an otherwise-supported provider during a transient outage. This method will be called when the user chooses a supported provider from the list of providers. If you do not implement this method, the user will be able to authenticate with all supported providers. @param accountManager The account manager instance that received a metadata request. @param accountProviderIdentifier Identifies the otherwise-supported account provider. @returns Returning NO will cause the request will fail with an unsupported provider error.
     */
    accountManager$shouldAuthenticateAccountProviderWithIdentifier$?(accountManager: _VSAccountManager, accountProviderIdentifier: _NSString): boolean;
}
