import { ButtonProps } from "../Button/Button.js";
import { FC } from "react";

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

/**
 * Props for the CopyButton component
 */
type CopyButtonProps = {
  /**
   * The text content to copy to the clipboard
   * @example
   * ```tsx
   * <CopyButton content="Hello World!" />
   * ```
   */
  content: string;
} & Partial<ButtonProps>;
/**
 * CopyButton - A specialized button component for copying text to the clipboard
 *
 * This component provides a user-friendly way to copy text content to the system clipboard
 * with visual feedback and accessibility features. It uses the modern Clipboard API with
 * fallback error handling, and provides clear visual indication of successful copy operations.
 *
 * ## Key Features
 * - **Clipboard Integration**: Uses modern Clipboard API for reliable text copying
 * - **Visual Feedback**: Icon changes from copy to check mark on successful copy
 * - **Auto-Reset**: Automatically reverts to copy icon after 1 second
 * - **Error Handling**: Graceful error handling with console logging
 * - **Accessibility**: Full keyboard navigation and screen reader support
 * - **Internationalization**: Multi-language support via Intlayer
 *
 * ## Use Cases
 * - Code snippet copying in documentation
 * - Sharing URLs or links
 * - Copying configuration values
 * - Form data duplication
 * - API key or token copying
 * - Text content sharing in interfaces
 *
 * ## Accessibility
 * - Uses semantic button element with proper ARIA labeling
 * - Keyboard accessible (Tab, Enter, Space)
 * - Screen reader announces copy actions
 * - Focus management with visible indicators
 * - Proper error state handling for assistive technologies
 *
 * ## Browser Compatibility
 * - Requires modern browsers with Clipboard API support
 * - Falls back gracefully with error logging for unsupported browsers
 * - Works in secure contexts (HTTPS) as required by Clipboard API
 *
 * @example
 * Basic usage:
 * ```tsx
 * <CopyButton content="Text to copy" />
 * ```
 *
 * @example
 * With custom styling and label:
 * ```tsx
 * <CopyButton
 *   content="https://example.com/api/endpoint"
 *   label="Copy API endpoint"
 *   variant={ButtonVariant.OUTLINE}
 *   color={ButtonColor.PRIMARY}
 *   size={ButtonSize.ICON_MD}
 * />
 * ```
 *
 * @example
 * In a code block context:
 * ```tsx
 * <div className="relative">
 *   <pre className="bg-gray-100 p-4 rounded">
 *     <code>npm install @intlayer/design-system</code>
 *   </pre>
 *   <CopyButton
 *     content="npm install @intlayer/design-system"
 *     className="absolute top-2 right-2"
 *     label="Copy installation command"
 *   />
 * </div>
 * ```
 */
declare const CopyButton: FC<CopyButtonProps>;
//#endregion
export { CopyButton };
//# sourceMappingURL=index.d.ts.map