import { AfterContentInit, ElementRef, OnChanges, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { FormStates } from '@fundamental-ngx/cdk/forms';
import { CssClassBuilder } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { InputGroupPlacement } from './types';
import * as i0 from "@angular/core";
export declare class InputGroupInputDirective implements CssClassBuilder, OnInit, OnChanges, OnDestroy {
    readonly elementRef: ElementRef;
    /** user's custom classes */
    class: string;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    constructor(elementRef: ElementRef, _contentDensityObserver: ContentDensityObserver);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupInputDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InputGroupInputDirective, "[fdInputGroupInput], [fd-input-group-input]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
}
export declare class InputGroupTextareaDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupTextareaDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InputGroupTextareaDirective, "[fdTextareaGroupInput], [fd-textarea-group-input]", never, {}, {}, never, never, true, never>;
}
export declare class InputGroupAddOnDirective implements OnInit, OnChanges, CssClassBuilder, AfterContentInit, OnDestroy {
    readonly elementRef: ElementRef;
    private readonly renderer;
    /** user's custom classes */
    class: string;
    /** @hidden */
    fdInputGroupAddonClass: boolean;
    /**
     * The placement of the add-on. Options include *before* and *after*
     */
    placement: InputGroupPlacement;
    /**
     * The placement of the add-on. Options include *before* and *after*
     */
    type: string;
    /**
     *  The state of the form control - applies css classes.
     *  Can be `success`, `error`, `warning`, `information` or blank for default.
     */
    state?: FormStates;
    /**
     * Whether the icon add-on or the text add-on is a button.
     */
    button: boolean;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    constructor(elementRef: ElementRef, renderer: Renderer2, _contentDensityObserver: ContentDensityObserver);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupAddOnDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InputGroupAddOnDirective, "[fdInputGroupAddon], [fd-input-group-addon]", never, { "class": { "alias": "class"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "type": { "alias": "type"; "required": false; }; "state": { "alias": "state"; "required": false; }; "button": { "alias": "button"; "required": false; }; }, {}, never, never, true, never>;
}
export declare class InputGroupAddonButtonDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupAddonButtonDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InputGroupAddonButtonDirective, "[fdInputGroupAddonButton], [fd-input-group-addon-button]", never, {}, {}, never, never, true, never>;
}
