import * as i0 from '@angular/core';
import { OnInit, OnChanges, ElementRef, AfterViewInit, EventEmitter } from '@angular/core';
import { CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';
import { IconFont } from '@fundamental-ngx/core/icon';

type NumericContentState = 'negative' | 'critical' | 'positive' | 'informative' | 'neutral';
type NumericContentSize = 's' | 'm' | 'l';
declare class NumericContentDirective implements OnInit, OnChanges, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** Apply user custom styles */
    class: string;
    /** Size of the numeric content */
    size: NumericContentSize | null;
    /** @hidden */
    baseClass: boolean;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /**
     * @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    private _isSmallTile;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentDirective, "[fd-numeric-content]", never, { "class": { "alias": "class"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NumericContentLaunchIconContainerDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentLaunchIconContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentLaunchIconContainerDirective, "[fd-numeric-content-launch-icon-container]", never, {}, {}, never, never, true, never>;
}
declare class NumericContentLaunchIconDirective implements OnInit, OnChanges, CssClassBuilder {
    /** Apply user custom styles */
    class: string;
    /** Glyph */
    glyph: string;
    /** Glyph font family */
    glyphFont: IconFont;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /**
     * @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentLaunchIconDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentLaunchIconDirective, "[fd-numeric-content-launch-icon]", never, { "class": { "alias": "class"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NumericContentKpiContainerDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentKpiContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentKpiContainerDirective, "[fd-numeric-content-kpi-container]", never, {}, {}, never, never, true, never>;
}
declare class NumericContentKpiDirective implements OnInit, OnChanges, CssClassBuilder {
    /** State of the KPI. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */
    state?: NumericContentState | null;
    /** Apply user custom styles */
    class: string;
    /** Glyph */
    glyph: string;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /**
     * @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentKpiDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentKpiDirective, "[fd-numeric-content-kpi]", never, { "state": { "alias": "state"; "required": false; }; "class": { "alias": "class"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NumericContentScaleContainerDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentScaleContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentScaleContainerDirective, "[fd-numeric-content-scale-container]", never, {}, {}, never, never, true, never>;
}
declare class NumericContentScaleArrowDirective implements OnInit, OnChanges, CssClassBuilder {
    /** Apply user custom styles */
    class: string;
    /** Glyph */
    glyph: string;
    /** Glyph font family */
    glyphFont: IconFont;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentScaleArrowDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentScaleArrowDirective, "[fd-numeric-content-scale-arrow]", never, { "class": { "alias": "class"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NumericContentScaleDirective implements OnInit, OnChanges, CssClassBuilder {
    /** State of the SCALE. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */
    state?: NumericContentState | null;
    /** Apply user custom styles */
    class: string;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /**
     * @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentScaleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentScaleDirective, "[fd-numeric-content-scale]", never, { "state": { "alias": "state"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NumericContentScaleTextDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericContentScaleTextDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NumericContentScaleTextDirective, "[fd-numeric-content-scale-text]", never, {}, {}, never, never, true, never>;
}

declare class TileContentDirective {
    /** @hidden */
    baseClass: boolean;
    /** Divides the tile content in to two columns. */
    twoColumn: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileContentDirective, "[fdTileContent], [fd-tile-content]", never, { "twoColumn": { "alias": "twoColumn"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileContentTextDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileContentTextDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileContentTextDirective, "[fdTileContentText], [fd-tile-content-text]", never, {}, {}, never, never, true, never>;
}
declare class TileFooterDirective {
    /** @hidden */
    baseClass: boolean;
    /** Divides the tile footer in to two columns. */
    twoColumn: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileFooterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileFooterDirective, "[fdTileFooter], [fd-tile-footer]", never, { "twoColumn": { "alias": "twoColumn"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileFooterTextDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileFooterTextDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileFooterTextDirective, "[fdTileFooterText], [fd-tile-footer-text]", never, {}, {}, never, never, true, never>;
}
declare class TileHeaderDirective {
    /** @hidden */
    baseClass: boolean;
    /** Divides the tile header in to two columns. */
    twoColumn: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileHeaderDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileHeaderDirective, "[fdTileHeader], [fd-tile-header]", never, { "twoColumn": { "alias": "twoColumn"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileHeaderContentDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileHeaderContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileHeaderContentDirective, "[fdTileHeaderContent], [fd-tile-header-content]", never, {}, {}, never, never, true, never>;
}
declare class TileSectionDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileSectionDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileSectionDirective, "[fdTileSection], [fd-tile-section]", never, {}, {}, never, never, true, never>;
}
declare class TileSubtitleDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileSubtitleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileSubtitleDirective, "[fdTileTitle], [fd-tile-subtitle]", never, {}, {}, never, never, true, never>;
}
declare class TileTitleDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileTitleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileTitleDirective, "[fdTileTitle], [fd-tile-title]", never, {}, {}, never, never, true, never>;
}
declare class TileTitleContainerDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileTitleContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileTitleContainerDirective, "[fdTileTitleContainer], [fd-tile-title-container]", never, {}, {}, never, never, true, never>;
}
declare class TileRefreshDirective implements OnInit, OnChanges, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** Glyph */
    glyph: string;
    /** Glyph font family */
    glyphFont: IconFont;
    /** Apply user custom styles */
    class: string;
    /** Apply user custom styles */
    ariaLabel: string;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileRefreshDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileRefreshDirective, "[fdTileRefresh], [fd-tile-refresh]", never, { "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; "class": { "alias": "class"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileProfileImgDirective {
    /** @hidden */
    baseClass: boolean;
    /** Id of the tile. */
    id: string;
    /** Aria-label for tile. */
    ariaLabel: Nullable<string>;
    /** Aria-Labelledby for element describing tile. */
    ariaLabelledby: Nullable<string>;
    /** Background image url. */
    backgroundImage: Nullable<string>;
    /** @hidden */
    get image(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileProfileImgDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileProfileImgDirective, "[fdTileProfileImg], [fd-tile-profile-img]", never, { "id": { "alias": "id"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "backgroundImage": { "alias": "backgroundImage"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileLogoDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileLogoDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileLogoDirective, "[fdTileLogo], [fd-tile-logo]", never, {}, {}, never, never, true, never>;
}
declare class TileToggleDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileToggleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileToggleDirective, "[fdTileToggle], [fd-tile-toggle]", never, {}, {}, never, never, true, never>;
}
declare class TileContainerDirective {
    /** @hidden */
    baseClass: boolean;
    /** Whether or not the container is a 'list' type (used on screens smaller than 450px). */
    list: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileContainerDirective, "[fdTileContainer], [fd-tile-container]", never, { "list": { "alias": "list"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileBackgroundImgDirective {
    /** @hidden */
    baseClass: boolean;
    /** Background image url. */
    backgroundImage: Nullable<string>;
    /** @hidden */
    get image(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileBackgroundImgDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileBackgroundImgDirective, "[fdTileBackgroundImg], [fd-tile-background-img]", never, { "backgroundImage": { "alias": "backgroundImage"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TilePageIndicatorDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TilePageIndicatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TilePageIndicatorDirective, "[fdTilePageIndicator], [fd-tile-page-indicator]", never, {}, {}, never, never, true, never>;
}
declare class TileActionCloseDirective implements OnInit, OnChanges, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** Apply user custom styles */
    class: string;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    private _addCloseIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileActionCloseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileActionCloseDirective, "[fdTileActionClose], [fd-tile-action-close]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileActionIndicatorDirective implements OnInit, OnChanges, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** Apply user custom styles */
    class: string;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    private _addIndicatorIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileActionIndicatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileActionIndicatorDirective, "[fdTileActionIndicator], [fd-tile-action-indicator]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
}
declare class TileActionContainerDirective {
    /** @hidden */
    baseClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileActionContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TileActionContainerDirective, "[fdTileActionContainer], [fd-tile-action-container]", never, {}, {}, never, never, true, never>;
}

type TileType = null | 'kpi' | 'launch' | 'feed';
type TileSize = null | 's';
declare class TileComponent implements CssClassBuilder, AfterViewInit, OnChanges {
    /** user's custom classes */
    class: string;
    /** Size modifier. Options are null (default) and 's'. */
    size: TileSize;
    /** Optional 'double' modifier to double the tile width. */
    double: boolean;
    /** Type of tile.  Options are 'kpi', 'launch', 'feed', or leave null for default. */
    type: TileType;
    /** Whether or not the tile is in 'action' mode. */
    action: boolean;
    /** Whether tile is focusable & clickable, (tileClick) event will be emitted on click. */
    clickable: boolean;
    /** Whether tile gets clicked or space/enter pressed. */
    readonly tileClick: EventEmitter<void>;
    /** @hidden */
    ref: ElementRef;
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    get elementRef(): ElementRef;
    static ɵfac: i0.ɵɵFactoryDeclaration<TileComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TileComponent, "fd-tile", never, { "class": { "alias": "class"; "required": false; }; "size": { "alias": "size"; "required": false; }; "double": { "alias": "double"; "required": false; }; "type": { "alias": "type"; "required": false; }; "action": { "alias": "action"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; }, { "tileClick": "tileClick"; }, never, ["[fd-tile-action-close]", "[fd-tile-action-indicator]", "[fd-badge]", "[fd-tile-header]", "[fd-tile-header-content]", "[fd-tile-content]", "[fd-tile-footer]", "[fd-tile-action-container]", "*"], true, never>;
    static ngAcceptInputType_clickable: unknown;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class TileModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TileModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TileModule, never, [typeof TileComponent, typeof TileHeaderDirective, typeof TileContentDirective, typeof TileFooterDirective, typeof TileTitleDirective, typeof TileSubtitleDirective, typeof TileSectionDirective, typeof TileRefreshDirective, typeof TileFooterTextDirective, typeof TileHeaderContentDirective, typeof TileProfileImgDirective, typeof TileLogoDirective, typeof TileContentTextDirective, typeof TileBackgroundImgDirective, typeof TileToggleDirective, typeof TileContainerDirective, typeof TilePageIndicatorDirective, typeof TileActionCloseDirective, typeof TileActionIndicatorDirective, typeof TileTitleContainerDirective, typeof TileActionContainerDirective, typeof NumericContentDirective, typeof NumericContentScaleArrowDirective, typeof NumericContentKpiContainerDirective, typeof NumericContentKpiDirective, typeof NumericContentLaunchIconContainerDirective, typeof NumericContentLaunchIconDirective, typeof NumericContentScaleContainerDirective, typeof NumericContentScaleDirective, typeof NumericContentScaleTextDirective], [typeof TileComponent, typeof TileHeaderDirective, typeof TileContentDirective, typeof TileFooterDirective, typeof TileTitleDirective, typeof TileSubtitleDirective, typeof TileSectionDirective, typeof TileRefreshDirective, typeof TileFooterTextDirective, typeof TileHeaderContentDirective, typeof TileProfileImgDirective, typeof TileLogoDirective, typeof TileContentTextDirective, typeof TileBackgroundImgDirective, typeof TileToggleDirective, typeof TileContainerDirective, typeof TilePageIndicatorDirective, typeof TileActionCloseDirective, typeof TileActionIndicatorDirective, typeof TileTitleContainerDirective, typeof TileActionContainerDirective, typeof NumericContentDirective, typeof NumericContentKpiContainerDirective, typeof NumericContentKpiDirective, typeof NumericContentLaunchIconContainerDirective, typeof NumericContentLaunchIconDirective, typeof NumericContentScaleArrowDirective, typeof NumericContentScaleContainerDirective, typeof NumericContentScaleDirective, typeof NumericContentScaleTextDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TileModule>;
}

export { NumericContentDirective, NumericContentKpiContainerDirective, NumericContentKpiDirective, NumericContentLaunchIconContainerDirective, NumericContentLaunchIconDirective, NumericContentScaleArrowDirective, NumericContentScaleContainerDirective, NumericContentScaleDirective, NumericContentScaleTextDirective, TileActionCloseDirective, TileActionContainerDirective, TileActionIndicatorDirective, TileBackgroundImgDirective, TileComponent, TileContainerDirective, TileContentDirective, TileContentTextDirective, TileFooterDirective, TileFooterTextDirective, TileHeaderContentDirective, TileHeaderDirective, TileLogoDirective, TileModule, TilePageIndicatorDirective, TileProfileImgDirective, TileRefreshDirective, TileSectionDirective, TileSubtitleDirective, TileTitleContainerDirective, TileTitleDirective, TileToggleDirective };
export type { NumericContentSize, NumericContentState };
