import type { LinkProperties } from '@engie-group/fluid-types';
import { EngieTemplateDirective } from '../../directives/engie-template.directive';
import { LinkIconPosition } from './link.model';
import * as i0 from "@angular/core";
export declare class LinkComponent implements LinkProperties {
    private readonly target;
    private linkClass;
    private iconClass;
    /**
     * Link variant theme
     */
    variant: LinkProperties['variant'];
    /**
     * Link size
     *
     * @deprecated Use scale property instead. This property will be removed in a future release.
     */
    size?: LinkProperties['scale'];
    scale?: LinkProperties['scale'];
    /**
     * If link opens in a new page, an icon notifying the user is placed on the right of the link
     */
    isExternal: boolean;
    externalLabel?: string;
    /**
     * Link material icon
     */
    icon?: string;
    /**
     * Whether icon is before or after text
     */
    iconPosition?: LinkIconPosition;
    protected templates: import("@angular/core").Signal<readonly EngieTemplateDirective[]>;
    private customIconTemplate;
    constructor(target: string | null | undefined);
    protected isExternalLink(): boolean;
    protected classes: import("@angular/core").Signal<string[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LinkComponent, [{ attribute: "target"; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LinkComponent, "a[nj-link]", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; "isExternal": { "alias": "isExternal"; "required": false; }; "externalLabel": { "alias": "externalLabel"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; }, {}, ["templates"], ["*"], true, never>;
}
