/**
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
/**
* @module collaboration-core/utils/confirmmixin
*/
import type { View } from "@ckeditor/ckeditor5-ui";
import type { Constructor, Locale, Mixed } from "@ckeditor/ckeditor5-utils";
/**
* Constructor returned by {@link ~ConfirmMixin}. Use it to name a mixin base class before extending it.
*
* ```ts
* const MyConfirmBase: ConfirmMixinConstructor<typeof BaseClass> = ConfirmMixin( BaseClass );
*
* class MyConfirm extends MyConfirmBase {}
* ```
*/
export type ConfirmMixinConstructor<Base extends Constructor<View>> = Mixed<Base, ConfirmApi>;
/**
* Adds interface for showing confirmation view in the specific for `CommentThreadView` and `CommentView` structure
* Confirm is always set to the `content` collection at the last position.
*/
export declare function ConfirmMixin<Base extends Constructor<View>>(base: Base): ConfirmMixinConstructor<Base>;
export interface ConfirmApi {
	isConfirm: boolean;
	locale: Locale;
	showConfirm(message: string, element: Element): Promise<unknown>;
	cancelConfirm(): void;
}
export type RemoveConfirmEvent = {
	name: "removeConfirm";
	args: [];
};
