import * as i0 from '@angular/core';
import { OnInit, AfterViewInit, EventEmitter, ElementRef, Renderer2 } from '@angular/core';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { IconComponent } from '@fundamental-ngx/core/icon';
import { BaseComponent } from '@fundamental-ngx/platform/shared';

type LinkType = 'standard' | 'emphasized' | 'subtle';
type NavigationTarget = '_blank' | '_self' | '_parent' | '_top' | 'framename';
/**
 * @deprecated
 * Link component is deprecated. Use `fd-link` from `@fundamental-ngx/core/link` instead.
 */
declare class LinkComponent extends BaseComponent implements OnInit, AfterViewInit {
    private renderer2;
    /**
     * href value to Navigate to. sets href to Native anchor.
     */
    href: Nullable<string>;
    /**
     * target where navigation will happen, Default=same frame
     * sets target to Native anchor.
     */
    target?: NavigationTarget;
    /** linktype of link, options standard or Emphasized, Default=standard */
    linkType?: LinkType;
    /**
     * type of link. possible values text|application|audio|font|example|image|message|model|multipart|video.
     * sets type to Native anchor.
     */
    type: string;
    /**
     * sets inverted property.
     */
    inverted: boolean;
    /**
     * Tooltip text to show when focused for more than  timeout value
     * sets title to Native anchor.
     * */
    title?: string;
    /**
     * Specifies the language of the linked document.
     * sets language to Native anchor.
     */
    hreflang?: string;
    /** Specifies that the target will be downloaded when a user clicks on the hyperlink
     * sets download property to Native anchor.
     */
    download?: string;
    /** Specifies what media/device the linked document is optimized for
     * sets media property to Native anchor.
     */
    media?: string;
    /** Specifies the relationship between the current document and the linked document
     * sets relation property to Native anchor.
     */
    rel?: string;
    /**
     * If text is overlapping. By setting truncate to true, overlapping can be hidden with using ellipsis
     */
    truncate: boolean;
    /** Emitting link click event */
    click: EventEmitter<MouseEvent | KeyboardEvent | TouchEvent>;
    /** @hidden */
    icon: IconComponent;
    /** Access child element, for checking link content*/
    anchor: ElementRef;
    /** @hidden */
    emphasized: boolean;
    /** @hidden */
    subtle: boolean;
    /** @hidden */
    constructor(renderer2: Renderer2);
    /** @hidden */
    ngOnInit(): void;
    /** @hidden Throw error for blank text/icon link */
    ngAfterViewInit(): void;
    /**
     * Puts underline on Icon
     * @param event {MouseEvent}
     */
    onMouseEnter(event: MouseEvent): void;
    /**
     * Removes underline on Icon
     * @param event {MouseEvent}
     */
    onMouseLeave(event: MouseEvent): void;
    /** raising click event */
    clicked(event: MouseEvent | KeyboardEvent | TouchEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LinkComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LinkComponent, "fdp-link", never, { "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "linkType": { "alias": "linkType"; "required": false; }; "type": { "alias": "type"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "title": { "alias": "title"; "required": false; }; "hreflang": { "alias": "hreflang"; "required": false; }; "download": { "alias": "download"; "required": false; }; "media": { "alias": "media"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "truncate": { "alias": "truncate"; "required": false; }; }, { "click": "click"; }, ["icon"], ["*"], true, never>;
    static ngAcceptInputType_inverted: unknown;
}

declare class PlatformLinkModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PlatformLinkModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformLinkModule, never, [typeof LinkComponent], [typeof LinkComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PlatformLinkModule>;
}

export { LinkComponent, PlatformLinkModule };
export type { LinkType, NavigationTarget };
