import React from 'react';
import { ConfirmationMode, ConfirmationPlacement } from './ConfirmDialog.models';
interface useConfirmationDelayProps {
    confirmationMode: ConfirmationMode;
    confirmation: boolean;
    setConfirmation: React.Dispatch<React.SetStateAction<boolean>>;
}
export interface ConfirmDialogProps {
    referenceElement?: HTMLElement;
    /** Dialog title default('Confirmation needed') */
    title?: string;
    /** Cancel button text default('Cancel') */
    cancelButtonText?: string;
    /** Confirm button text default('Confirm') */
    confirmButtonText?: string;
    /** Optional class */
    className?: string;
    /** Default placement can be changed with this optional property (default: 'top') */
    placement?: ConfirmationPlacement;
    /** Move along the reference element default(0) */
    offsetSkidding?: number;
    /** Distance to the reference element default(6) */
    offsetDistance?: number;
    /** Raised when the 'Cancel' button is clicked */
    onCancel?: () => void;
    /** Raised when the 'Confirm' button is clicked */
    onConfirm?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
    /** Emits on mount and un-mount */
    onConfirmOpen?: (isOpen: boolean) => void;
}
/**
 * Renders a dialog pop up. Giving the user the option to confirm or cancel an action.
 * @example
 * const [referenceElement, setReferenceElement] = useState<HTMLElement>();
 * <div ref={setReferenceElement as React.LegacyRef<HTMLDivElement>}>
 *   <ConfirmDialog
 *   referenceElement={referenceElement}
 *   onCancel={onCancelHandler}
 *   onConfirm={onConfirmHandler}
 *   />
 * </div>
 */
export declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
export declare const useConfirmationDelay: ({ confirmationMode, confirmation, setConfirmation, }: useConfirmationDelayProps) => {
    readonly isMouseOver: boolean;
    readonly setIsMouseOver: React.Dispatch<React.SetStateAction<boolean>>;
};
export {};
//# sourceMappingURL=ConfirmDialog.d.ts.map