import { type HTMLAttributes, type ReactNode } from 'react';
import { type VariantProps } from 'class-variance-authority';
declare const fieldVariants: (props?: ({
size?: "sm" | "md" | "lg" | null | undefined;
disabled?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
declare const valueVariants: (props?: ({
intent?: "default" | "primary" | null | undefined;
size?: "sm" | "md" | "lg" | null | undefined;
wrap?: boolean | null | undefined;
hasStartIcon?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type FieldSize = NonNullable['size']>;
type ValueIntent = NonNullable['intent']>;
export interface CopyFieldProps extends Omit, 'children' | 'onCopy'> {
/** The value displayed in the read-only field and copied on click. */
value: string;
/** Field height + padding. Mirrors TextInput sizes. */
size?: FieldSize;
/**
* `primary` tints the value text with `--primary` — matches the
* link-style emphasis used by the telehealth showSession page.
*/
intent?: ValueIntent;
/**
* Leading icon slot, decorative. Use `lucide-react` icons like
* `` for a URL, `` for a token.
*/
startIcon?: ReactNode;
/**
* `false` (default) truncates long values with ellipsis on a single
* line. `true` allows wrap with `overflow-wrap: anywhere`.
*/
wrap?: boolean;
/** Override the default 'Copy' button label. */
copyLabel?: ReactNode;
/** Override the default 'Copied' success-state label. */
copiedLabel?: ReactNode;
/** Milliseconds before the button reverts to its default state. Default 2000. */
copiedDuration?: number;
/** ARIA label for the read-only textbox. Defaults to the i18n key. */
ariaLabel?: string;
/** Fires once after a successful clipboard write. */
onCopy?: (value: string) => void;
/** Greys both the field and the button; the button doesn't fire onCopy. */
disabled?: boolean;
}
export declare const CopyField: import("react").ForwardRefExoticComponent>;
export {};
//# sourceMappingURL=copy-field.d.ts.map