import * as i0 from '@angular/core';
import { AfterViewChecked } from '@angular/core';
import { BaseComponent } from 'primeng/basecomponent';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import { FloatLabelPassThrough } from 'primeng/types/floatlabel';
import { BaseStyle } from 'primeng/base';
import * as i2 from 'primeng/api';

/**
 *
 * FloatLabel visually integrates a label with its form element.
 *
 * [Live Demo](https://www.primeng.org/floatlabel/)
 *
 * @module floatlabelstyle
 *
 */
declare enum FloatLabelClasses {
    /**
     * Class name of the root element
     */
    root = "p-floatlabel"
}
declare class FloatLabelStyle extends BaseStyle {
    name: string;
    style: string;
    classes: {
        root: ({ instance }: {
            instance: any;
        }) => (string | {
            'p-floatlabel-over': boolean;
            'p-floatlabel-on': boolean;
            'p-floatlabel-in': boolean;
        })[];
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<FloatLabelStyle, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FloatLabelStyle>;
}
interface FloatLabelStyle extends BaseStyle {
}

/**
 * FloatLabel appears on top of the input field when focused.
 * @group Components
 */
declare class FloatLabel extends BaseComponent<FloatLabelPassThrough> implements AfterViewChecked {
    componentName: string;
    _componentStyle: FloatLabelStyle;
    $pcFloatLabel: FloatLabel | undefined;
    bindDirectiveInstance: Bind;
    onAfterViewChecked(): void;
    /**
     * Defines the positioning of the label relative to the input.
     * @group Props
     */
    variant: 'in' | 'over' | 'on';
    static ɵfac: i0.ɵɵFactoryDeclaration<FloatLabel, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FloatLabel, "p-floatlabel, p-floatLabel, p-float-label", never, { "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class FloatLabelModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FloatLabelModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FloatLabelModule, never, [typeof FloatLabel, typeof i2.SharedModule], [typeof FloatLabel, typeof i2.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FloatLabelModule>;
}

export { FloatLabel, FloatLabelClasses, FloatLabelModule, FloatLabelStyle };
