import { CrudeTimeSpan } from '@synnaxlabs/x';
import { ReactElement } from 'react';
import { ButtonProps } from './Button';
export interface CopyProps extends Omit<ButtonProps, "onClick"> {
    /** The text to copy to the clipboard, or a function that returns it. */
    text: string | (() => string);
    /** Optional callback invoked after successfully copying to clipboard. */
    onCopy?: () => void;
    /** Optional callback invoked if copying fails. */
    onCopyError?: (error: Error) => void;
    /** Duration in ms to show the checkmark after copying. Defaults to 2000. */
    copiedDuration?: CrudeTimeSpan;
}
/**
 * A button that copies text to the clipboard and shows a checkmark on success.
 *
 * @example
 * <Button.Copy text="Hello, world!" tooltip="Copy greeting" />
 *
 * @example
 * <Button.Copy
 *   text={JSON.stringify(data)}
 *   onCopy={() => console.log("Copied!")}
 *   variant="filled"
 * />
 */
export declare const Copy: ({ text, onCopy, onCopyError, copiedDuration, tooltip, children, ...rest }: CopyProps) => ReactElement;
//# sourceMappingURL=Copy.d.ts.map