import { ElementRef, TemplateRef } from '@angular/core';
import { HasElementRef } from '@fundamental-ngx/cdk/utils';
import { OverflowItemDirectiveContext, OverflowItemRef } from '../interfaces/overflow-item-ref.interface';
import { OverflowItem } from '../interfaces/overflow-item.interface';
import * as i0 from "@angular/core";
/**
 * Structural directive which is used to pass the context of the item to the template engine.
 */
export declare class OverflowItemRefDirective<T = any> implements OverflowItemRef<T>, HasElementRef {
    templateRef: TemplateRef<OverflowItemDirectiveContext<T>>;
    /** Item instance. Used for correct autocomplete. */
    item: T;
    /**
     * Element ref of the `fdOverflowLayoutItem` directive.
     */
    elementRef: ElementRef<HTMLElement>;
    /**
     * `fdOverflowLayoutItem` directive.
     */
    overflowItem: OverflowItem;
    /**
     * Whether the item is hidden.
     */
    set hidden(value: boolean);
    get hidden(): boolean;
    /** @hidden */
    _hidden: boolean;
    /** Index of the item in the visible or hidden array of Overflow Layout Component's items. */
    index: number;
    /**
     * The index of the item in the array of items.
     */
    globalIndex: number;
    /** Whether this item is last in the array. */
    first: boolean;
    /** Whether this item is first in the array. */
    last: boolean;
    /** Whether the item is softly hidden. */
    softHidden: boolean;
    /** @hidden */
    readonly injector: import("@angular/core").Injector;
    /** @hidden */
    constructor(templateRef: TemplateRef<OverflowItemDirectiveContext<T>>);
    /** @hidden */
    static ngTemplateContextGuard(dir: OverflowItemRefDirective, ctx: OverflowItemDirectiveContext): ctx is OverflowItemDirectiveContext;
    /**
     * Sets the element reference of the `fdOverflowLayoutItem` directive.`
     * @param elmRef
     */
    setElementRef(elmRef: ElementRef): void;
    /**
     * Sets the `fdOverflowLayoutItem` directive.
     * @param item
     */
    setOverflowItem(item: OverflowItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OverflowItemRefDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<OverflowItemRefDirective<any>, "[fdOverflowItemRef]", never, { "item": { "alias": "fdOverflowItemRef"; "required": false; }; }, {}, never, never, true, never>;
}
