export interface CopyActionOptions { onCopied?: (value: string) => void; onCopyError?: (error: unknown, value: string) => void; onEmpty?: () => void; /** Override reset delay for this call. `false` keeps `hasCopied` until `reset()`. */ resetAfterMs?: number | false; } export interface UseCopyToClipboardOptions { defaultResetAfterMs?: number; } /** * Headless copy-to-clipboard hook with copied state, auto-reset, and action callbacks. * Same surface as common app hooks (`onCopied` / `onEmpty` / `onCopyError`) without * an extra dependency. * * @example * const { copy, hasCopied, reset } = useCopyToClipboard() * await copy(caseId, { * onEmpty: () => showToastDanger({ title: "Nothing to copy" }), * onCopied: (v) => showToastSuccess({ title: "Copied", description: v }), * onCopyError: (_e, v) => showToastDanger({ title: "Copy failed", description: v }), * }) */ export declare function useCopyToClipboard(options?: UseCopyToClipboardOptions): { copiedText: string | null; copy: (value: string | null | undefined, actionOptions?: CopyActionOptions) => Promise; hasCopied: boolean; reset: () => void; };