import { FC, KeyboardEvent, MouseEvent, PropsWithChildren } from "react";

//#region src/components/CopyToClipboard/index.d.ts

/**
 * Props for the CopyToClipboard component
 */
interface CopyToClipboardProps extends PropsWithChildren {
  /**
   * The text to copy to the clipboard when clicked
   * @example "Hello World"
   * @example "npm install @intlayer/design-system"
   */
  text: string;
  /**
   * Additional CSS classes for the wrapper element
   * @example "bg-blue-100 text-blue-800"
   */
  className?: string;
  /**
   * Accessible label for screen readers when copy operation is available
   * @default "Copy to clipboard"
   */
  'aria-label'?: string;
  /**
   * Accessible label for screen readers when content has been copied
   * @default "Copied to clipboard"
   */
  'aria-copied-label'?: string;
  /**
   * Duration in milliseconds to show the "copied" state
   * @default 2000
   */
  feedbackDuration?: number;
  /**
   * Callback function called when copy operation succeeds
   */
  onCopySuccess?: (e: MouseEvent | KeyboardEvent) => void;
  /**
   * Callback function called when copy operation fails
   */
  onCopyError?: (error: Error) => void;
  /**
   * Disable the copy to clipboard functionality and return the children
   * @default false
   */
  disable?: boolean;
  /**
   * Prevent the default behavior of the link when clicked
   * @default true
   */
  preventDefault?: boolean;
}
/**
 * CopyToClipboard Component
 *
 * A versatile component that allows users to copy text to their clipboard with visual feedback.
 * Provides accessibility features, customizable feedback duration, and error handling.
 *
 * @example
 * ```tsx
 * // Basic usage
 * <CopyToClipboard text="Hello World">
 *   <span>Click to copy</span>
 * </CopyToClipboard>
 *
 * // With custom styling and callbacks
 * <CopyToClipboard
 *   text="npm install @intlayer/design-system"
 *   className="bg-gray-100 p-2"
 *   feedbackDuration={3000}
 *   onCopySuccess={() => console.log('Copied!')}
 * >
 *   <code>npm install @intlayer/design-system</code>
 * </CopyToClipboard>
 * ```
 *
 * @component
 * @accessibility
 * - Uses proper ARIA labels for copy and copied states
 * - Supports keyboard navigation (Enter and Space keys)
 * - Announces state changes to screen readers
 * - Provides visual focus indicators
 */
declare const CopyToClipboard: FC<CopyToClipboardProps>;
//#endregion
export { CopyToClipboard, CopyToClipboardProps };
//# sourceMappingURL=index.d.ts.map