import type { Generic } from 'adopted-style-sheets';
import type { ButtonVariantPropType, PropAccessKey, PropAlternativeButtonLinkRole, PropAriaControls, PropAriaCurrentValue, PropAriaDescription, PropAriaExpanded, PropAriaOwns, PropCustomClass, PropDisabled, PropDownload, PropHideLabel, PropHref, PropIcons, PropInline, PropLabelWithExpertSlot, PropLinkOnCallbacks, PropLinkTarget, PropShortKey, PropTooltipAlign } from '../props';
export type RequiredProps = PropHref;
export type OptionalProps = {
    tabIndex: number;
} & PropAccessKey & PropAlternativeButtonLinkRole & PropAriaCurrentValue & PropAriaControls & PropAriaDescription & PropDisabled & PropDownload & PropHideLabel & PropIcons & PropInline & PropLabelWithExpertSlot & PropLinkOnCallbacks & PropLinkTarget & PropShortKey & PropTooltipAlign;
type RequiredStates = PropAriaCurrentValue & PropIcons & PropHref;
type OptionalStates = {
    ariaCurrent: string;
} & PropAriaExpanded & PropAriaOwns & PropCustomClass & Omit<RequiredProps & OptionalProps, keyof RequiredStates> & {
    variant: ButtonVariantPropType;
};
export type LinkProps = Generic.Element.Members<RequiredProps, OptionalProps>;
export type LinkStates = Generic.Element.Members<RequiredStates, OptionalStates>;
export type LinkAPI = Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates>;
export type InternalLinkAPI = Omit<LinkAPI, 'validateVariant'>;
export {};
