import React from 'react';
import { Theme } from '../cn';
export declare type LinkProps = {
    /**
     * Иконка ссылки
     */
    icon?: React.ReactNode;
    /**
     * Позиционирование иконки в ссылке
     */
    iconPosition?: 'left' | 'right';
    /**
     * Текст ссылки
     */
    text?: React.ReactNode;
    /**
     * href ссылки
     */
    url?: string;
    /**
     * Указание на загрузку, вместо открытия и указание имени файла
     */
    download?: string | boolean;
    /**
     * target ссылки
     */
    target?: '_self' | '_blank' | '_parent' | '_top';
    /**
     * Последовательность перехода между контролами при нажатии на Tab
     */
    tabIndex?: number;
    /**
     * Управление возможностью клика по ссылке
     */
    disabled?: boolean;
    /**
     * Управление состоянием ссылки выбран/не выбран
     */
    checked?: boolean;
    /**
     * Псевдо-ссылка (border-bottom: dashed)
     */
    pseudo?: boolean;
    /**
     * Тип ссылки
     */
    view?: 'default' | 'blue';
    /**
     * Размер компонента
     */
    size?: 'xs' | 's' | 'm' | 'l' | 'xl';
    /**
     * Дочерние элементы `Link`
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Обработчик клика но ссылке
     */
    onClick?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик фокуса компонента
     */
    onFocus?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик снятия фокуса компонента
     */
    onBlur?: (event?: React.FocusEvent<any>) => void;
    /**
     * Обработчик события наведения курсора на ссылку
     */
    onMouseEnter?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик события снятия курсора с ссылки
     */
    onMouseLeave?: (event?: React.MouseEvent<any>) => void;
    /**
     * Обработчик клика по disabled ссылке
     */
    onDisabledClick?: (event?: React.MouseEvent<any>) => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
};
/**
 * Компонент ссылки.
 */
export declare class Link extends React.PureComponent<LinkProps> {
    protected cn: (this: void | {
        props?: Record<string, unknown>;
    }, elementNameOrMods?: string | {
        [key: string]: string | number | boolean;
    }, mods?: {
        [key: string]: string | number | boolean;
    }) => string;
    static defaultProps: Partial<LinkProps>;
    state: {
        hovered: boolean;
        focused: boolean;
    };
    private root;
    render(): React.DetailedReactHTMLElement<{
        'data-test-id': string;
        download?: any;
        href?: string;
        hrefLang?: string;
        media?: string;
        ping?: string;
        rel?: string;
        target?: string;
        type?: string;
        referrerPolicy?: string;
        defaultChecked?: boolean;
        defaultValue?: string | number | string[];
        suppressContentEditableWarning?: boolean;
        suppressHydrationWarning?: boolean;
        accessKey?: string;
        className?: string;
        contentEditable?: boolean | "inherit" | "true" | "false";
        contextMenu?: string;
        dir?: string;
        draggable?: boolean | "true" | "false";
        hidden?: boolean;
        id?: string;
        lang?: string;
        placeholder?: string;
        slot?: string;
        spellCheck?: boolean | "true" | "false";
        style?: React.CSSProperties;
        tabIndex?: number;
        title?: string;
        translate?: "yes" | "no";
        radioGroup?: string;
        role?: string;
        about?: string;
        datatype?: string;
        inlist?: any;
        prefix?: string;
        property?: string;
        resource?: string;
        typeof?: string;
        vocab?: string;
        autoCapitalize?: string;
        autoCorrect?: string;
        autoSave?: string;
        color?: string;
        itemProp?: string;
        itemScope?: boolean;
        itemType?: string;
        itemID?: string;
        itemRef?: string;
        results?: number;
        security?: string;
        unselectable?: "off" | "on";
        inputMode?: "text" | "email" | "tel" | "none" | "url" | "numeric" | "decimal" | "search";
        is?: string;
        'aria-activedescendant'?: string;
        'aria-atomic'?: boolean | "true" | "false";
        'aria-autocomplete'?: "none" | "inline" | "list" | "both";
        'aria-busy'?: boolean | "true" | "false";
        'aria-checked'?: boolean | "true" | "false" | "mixed";
        'aria-colcount'?: number;
        'aria-colindex'?: number;
        'aria-colspan'?: number;
        'aria-controls'?: string;
        'aria-current'?: boolean | "time" | "date" | "true" | "false" | "page" | "step" | "location";
        'aria-describedby'?: string;
        'aria-details'?: string;
        'aria-disabled'?: boolean | "true" | "false";
        'aria-dropeffect'?: "link" | "copy" | "none" | "popup" | "execute" | "move";
        'aria-errormessage'?: string;
        'aria-expanded'?: boolean | "true" | "false";
        'aria-flowto'?: string;
        'aria-grabbed'?: boolean | "true" | "false";
        'aria-haspopup'?: boolean | "dialog" | "menu" | "grid" | "true" | "false" | "listbox" | "tree";
        'aria-hidden'?: boolean | "true" | "false";
        'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
        'aria-keyshortcuts'?: string;
        'aria-label'?: string;
        'aria-labelledby'?: string;
        'aria-level'?: number;
        'aria-live'?: "off" | "assertive" | "polite";
        'aria-modal'?: boolean | "true" | "false";
        'aria-multiline'?: boolean | "true" | "false";
        'aria-multiselectable'?: boolean | "true" | "false";
        'aria-orientation'?: "horizontal" | "vertical";
        'aria-owns'?: string;
        'aria-placeholder'?: string;
        'aria-posinset'?: number;
        'aria-pressed'?: boolean | "true" | "false" | "mixed";
        'aria-readonly'?: boolean | "true" | "false";
        'aria-relevant'?: "text" | "additions" | "additions text" | "all" | "removals";
        'aria-required'?: boolean | "true" | "false";
        'aria-roledescription'?: string;
        'aria-rowcount'?: number;
        'aria-rowindex'?: number;
        'aria-rowspan'?: number;
        'aria-selected'?: boolean | "true" | "false";
        'aria-setsize'?: number;
        'aria-sort'?: "none" | "ascending" | "descending" | "other";
        'aria-valuemax'?: number;
        'aria-valuemin'?: number;
        'aria-valuenow'?: number;
        'aria-valuetext'?: string;
        children?: React.ReactNode;
        dangerouslySetInnerHTML?: {
            __html: string;
        };
        onCopy?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onCopyCapture?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onCut?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onCutCapture?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onPaste?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onPasteCapture?: (event: React.ClipboardEvent<HTMLAnchorElement>) => void;
        onCompositionEnd?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onCompositionEndCapture?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onCompositionStart?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onCompositionStartCapture?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onCompositionUpdate?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onCompositionUpdateCapture?: (event: React.CompositionEvent<HTMLAnchorElement>) => void;
        onFocus?: (event: React.FocusEvent<HTMLAnchorElement>) => void;
        onFocusCapture?: (event: React.FocusEvent<HTMLAnchorElement>) => void;
        onBlur?: (event: React.FocusEvent<HTMLAnchorElement>) => void;
        onBlurCapture?: (event: React.FocusEvent<HTMLAnchorElement>) => void;
        onChange?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onChangeCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onBeforeInput?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onBeforeInputCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onInput?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onInputCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onReset?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onResetCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onSubmit?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onSubmitCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onInvalid?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onInvalidCapture?: (event: React.FormEvent<HTMLAnchorElement>) => void;
        onLoad?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onError?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onErrorCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onKeyDown?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onKeyDownCapture?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onKeyPress?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onKeyPressCapture?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onKeyUp?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onKeyUpCapture?: (event: React.KeyboardEvent<HTMLAnchorElement>) => void;
        onAbort?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onAbortCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onCanPlay?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onCanPlayCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onCanPlayThrough?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onCanPlayThroughCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onDurationChange?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onDurationChangeCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEmptied?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEmptiedCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEncrypted?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEncryptedCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEnded?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onEndedCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadedData?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadedDataCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadedMetadata?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadedMetadataCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadStart?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onLoadStartCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPause?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPauseCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPlay?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPlayCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPlaying?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onPlayingCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onProgress?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onProgressCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onRateChange?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onRateChangeCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSeeked?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSeekedCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSeeking?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSeekingCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onStalled?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onStalledCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSuspend?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSuspendCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onTimeUpdate?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onTimeUpdateCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onVolumeChange?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onVolumeChangeCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onWaiting?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onWaitingCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onAuxClick?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onAuxClickCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onClick?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onClickCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onContextMenu?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onContextMenuCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onDoubleClick?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onDoubleClickCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onDrag?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragEnd?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragEndCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragEnter?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragEnterCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragExit?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragExitCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragLeave?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragLeaveCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragOver?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragOverCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragStart?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDragStartCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDrop?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onDropCapture?: (event: React.DragEvent<HTMLAnchorElement>) => void;
        onMouseDown?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseDownCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseEnter?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseLeave?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseMove?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseMoveCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseOut?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseOutCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseOver?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseOverCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseUp?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onMouseUpCapture?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
        onSelect?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onSelectCapture?: (event: React.SyntheticEvent<HTMLAnchorElement, Event>) => void;
        onTouchCancel?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchCancelCapture?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchEnd?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchEndCapture?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchMove?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchMoveCapture?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchStart?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onTouchStartCapture?: (event: React.TouchEvent<HTMLAnchorElement>) => void;
        onPointerDown?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerDownCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerMove?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerMoveCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerUp?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerUpCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerCancel?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerCancelCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerEnter?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerEnterCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerLeave?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerLeaveCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerOver?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerOverCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerOut?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onPointerOutCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onGotPointerCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onGotPointerCaptureCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onLostPointerCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onLostPointerCaptureCapture?: (event: React.PointerEvent<HTMLAnchorElement>) => void;
        onScroll?: (event: React.UIEvent<HTMLAnchorElement>) => void;
        onScrollCapture?: (event: React.UIEvent<HTMLAnchorElement>) => void;
        onWheel?: (event: React.WheelEvent<HTMLAnchorElement>) => void;
        onWheelCapture?: (event: React.WheelEvent<HTMLAnchorElement>) => void;
        onAnimationStart?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onAnimationStartCapture?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onAnimationEnd?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onAnimationEndCapture?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onAnimationIteration?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onAnimationIterationCapture?: (event: React.AnimationEvent<HTMLAnchorElement>) => void;
        onTransitionEnd?: (event: React.TransitionEvent<HTMLAnchorElement>) => void;
        onTransitionEndCapture?: (event: React.TransitionEvent<HTMLAnchorElement>) => void;
        ref?: React.LegacyRef<HTMLAnchorElement>;
        key?: React.Key;
    }, HTMLAnchorElement>;
    private handleClick;
    private handleFocus;
    private handleBlur;
    private handleMouseEnter;
    handleMouseLeave: (event: any) => void;
    /**
     * Возвращает корневой `HTMLElement` компонента.
     */
    getNode(): HTMLElement;
    /**
     * Ставит фокус на ссылку.
     */
    focus(): void;
    /**
     * Убирает фокус с ссылки.
     */
    blur(): void;
}
declare const _default: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<Link>> & Link;
export default _default;
