import React, { AnchorHTMLAttributes, Ref } from 'react';
import { IconProps } from '../Icon';
import { OcBaseProps } from '../OcBase';
import { ConfigContextProps, Shape, Size, OcThemeName } from '../ConfigProvider';
import { NudgeProps } from '../Button/Nudge/Nudge.types';
import { ButtonIconAlign as LinkButtonIconAlign, ButtonTextAlign as LinkButtonTextAlign, ButtonSize as LinkButtonSize, ButtonWidth as LinkButtonWidth, ButtonShape as LinkButtonShape, ButtonVariant as LinkButtonVariant } from '../Button';
export { LinkButtonIconAlign, LinkButtonTextAlign, LinkButtonSize, LinkButtonWidth, LinkButtonShape, LinkButtonVariant, };
export interface FloatingLinkButtonProps {
/**
* Determines if the link button is floating.
* @default false
*/
enabled?: boolean;
}
export declare type NativeLinkButtonProps = OcBaseProps & AnchorHTMLAttributes;
export interface LinkButtonProps extends NativeLinkButtonProps {
/**
* Allows focus on the link button when it's disabled.
*/
allowDisabledFocus?: boolean;
/**
* The link button icon alignment.
* @default LinkButtonIconAlign.Left
*/
alignIcon?: LinkButtonIconAlign;
/**
* The link button text alignment.
* @default LinkButtonTextAlign.Center
*/
alignText?: LinkButtonTextAlign;
/**
* The link button aria-label text.
*/
ariaLabel?: string;
/**
* The link button class names.
*/
classNames?: string;
/**
* Configure how contextual props are consumed
*/
configContextProps?: ConfigContextProps;
/**
* The link button counter string.
*/
counter?: string;
/**
* The link button disabled state.
* @default false
*/
disabled?: boolean;
/**
* The link button disruptive state.
* @default false
*/
disruptive?: boolean;
/**
* The link button drop shadow state.
* @default false
*/
dropShadow?: boolean;
/**
* The link button is always floating on bottom right corner.
*/
floatingLinkButtonProps?: FloatingLinkButtonProps;
/**
* The link button gradient state.
* @default false
*/
gradient?: boolean;
/**
* The link button nudge props.
* @experimental
*/
nudgeProps?: NudgeProps;
/**
* The link button icon props.
*/
iconProps?: IconProps;
/**
* The link button width type
* @default fitContent
*/
linkButtonWidth?: LinkButtonWidth;
/**
* The link button icon props.
*/
prefixIconProps?: IconProps;
/**
* The link button id.
*/
id?: string;
/**
* The link button onClick event handler.
*/
onClick?: React.MouseEventHandler;
/**
* Ref of the link button
*/
ref?: Ref;
/**
* The link button role.
* @default 'link'
*/
role?: string;
/**
* Shape of the link button.
* @default LinkButtonShape.Pill
*/
shape?: LinkButtonShape | Shape;
/**
* The link button size.
* @default LinkButtonSize.Medium
*/
size?: LinkButtonSize | Size;
/**
* The link button style.
*/
style?: React.CSSProperties;
/**
* The link button target
* @default '_self'
*/
target?: string;
/**
* The link button text.
*/
text?: string;
/**
* Theme of the link button.
* Use with configContextProps.noThemeContext to override theme.
* @default blue
*/
theme?: OcThemeName;
/**
* Theme container of the link button.
* Use with `theme` to generate a unique container or a common one.
*/
themeContainerId?: string;
/**
* The link button will remain transparent
* @default false
*/
transparent?: boolean;
/**
* The link button variant.
* variant: `Default`, `Neutral`, `Primary`, `Secondary`, `SystemUI`
* @default LinkButtonVariant.Default
*/
variant?: LinkButtonVariant;
/**
* If the link button is in loading state
*/
loading?: boolean;
}