import { CopyActionOptions } from '../hooks/use-copy-to-clipboard.js'; export type CopyFeedbackText = string | ((value: string) => string); export interface CopyWithAppFeedbackOptions { emptyDescription?: CopyFeedbackText; emptyTitle?: CopyFeedbackText; emptyVariant?: "danger" | "info" | "warning"; errorDescription?: CopyFeedbackText; errorTitle?: CopyFeedbackText; resetAfterMs?: number | false; successDescription?: CopyFeedbackText; successTitle?: CopyFeedbackText; } export type AppCopyFunction = (value: string | null | undefined, actionOptions?: CopyActionOptions) => Promise; /** * Run a `useCopyToClipboard().copy` (or compatible) function with Athena toast feedback. * * Prefer this for showcase and product copy actions so empty/error/success * toasts stay consistent (`showToastSuccess` / `showToastDanger` / info-or-warning). * * @example * const { copy } = useCopyToClipboard() * await copyWithAppFeedback(copy, caseId, { * emptyTitle: "Case ID is not available", * emptyVariant: "danger", * errorTitle: "Unable to copy case ID", * errorDescription: caseId, * successTitle: "Case ID copied", * successDescription: caseId, * }) */ export declare function copyWithAppFeedback(copy: AppCopyFunction, value: string | null | undefined, options: CopyWithAppFeedbackOptions): Promise;