import * as React from "react"; export interface ConfirmationResult { confirmed: boolean; result: T | undefined; } export interface ConfirmationContentProps { data: TData | undefined; setResult: (result: TResult) => void; setIsValid: (isValid: boolean) => void; confirm: () => void; confirmResult: (result: TResult) => void; cancel: () => void; } export interface ConfirmationWithResultContentProps { data: TData | undefined; confirmResult: (result: TResult) => void; cancel: () => void; } export interface ConfirmationOptions { title?: string | undefined; showConfirmButton?: boolean | undefined; showCancelButton?: boolean | undefined; confirmButtonText?: string | undefined; cancelButtonText?: string | undefined; confirmButtonIcon?: string | undefined; cancelButtonIcon?: string | undefined; showCloseButton?: boolean | undefined; fullCustomization?: boolean | undefined; closeOnOutsideClick?: boolean | undefined; state?: "success" | "info" | "alert" | "error"; hideIcon?: boolean; } export interface ConfirmComponentUI { component: | React.ComponentType | ConfirmationWithResultContentProps> | (new () => HTMLElement); styles?: string; } export abstract class PrimariaInteractionService { abstract confirm( data: TData | undefined, componentUI: ConfirmComponentUI, options?: ConfirmationOptions | undefined, ): Promise>; abstract confirmMessage(message: string, options?: ConfirmationOptions | undefined): Promise; abstract dispose(): void; }