/**
 * Options for {@link useClipboard}.
 */
export interface UseClipboardOptions {
    /**
     * Message announced to a polite live region on a successful copy. Swapping a
     * control's `aria-label` alone is not reliably announced by screen readers,
     * so pass the localized confirmation (e.g. "Copied") to have it spoken.
     * Omit to skip the announcement.
     */
    announce?: string;
    /**
     * Milliseconds `isCopied` stays true after a successful copy before it
     * reverts to false.
     * @default 2000
     */
    resetAfterMs?: number;
}
/**
 * Return value of {@link useClipboard}.
 */
export interface UseClipboardReturn {
    /**
     * Write `text` to the clipboard. On success, flips `isCopied` to true,
     * announces the configured message, and (re)starts the reset timer;
     * resolves `true`. A clipboard rejection is a silent no-op that leaves the
     * copied state unchanged and resolves `false`.
     */
    copy: (text: string) => Promise<boolean>;
    /** True for `resetAfterMs` after the most recent successful copy. */
    isCopied: boolean;
}
/**
 * Copy-to-clipboard behavior: the clipboard write, a transient `isCopied`
 * flag with its own reset timer, and an optional polite screen-reader
 * announcement — the block otherwise re-derived at every copy affordance.
 *
 * Per [API Conventions → Behaviors: Hooks Over Wrappers], the behavior is a
 * hook and the control (an icon button, a menu item, a value chip) is a thin
 * shell over it. Rapid re-copies restart the reset timer so the confirmation
 * always lasts the full duration, and the timer is cleaned up on unmount.
 *
 * @example
 * ```
 * function CopyButton({text}: {text: string}) {
 *   const {copy, isCopied} = useClipboard({announce: 'Copied'});
 *   return (
 *     <IconButton
 *       label={isCopied ? 'Copied' : 'Copy'}
 *       tooltip="Copy"
 *       icon={<Icon icon={isCopied ? 'check' : 'copy'} />}
 *       onClick={() => void copy(text)}
 *     />
 *   );
 * }
 * ```
 */
export declare function useClipboard(options?: UseClipboardOptions): UseClipboardReturn;
//# sourceMappingURL=useClipboard.d.ts.map