import * as _angular_core from '@angular/core';
import { OnInit, OnDestroy, OnChanges, ViewContainerRef, ElementRef, Renderer2, Injector, SimpleChanges } from '@angular/core';
import { NgControl } from '@angular/forms';
import { BooleanInput } from '@angular/cdk/coercion';
import { Subscription } from 'rxjs';
import * as _angular_animations from '@angular/animations';

declare class InputDirective implements OnInit, OnDestroy, OnChanges {
    euiDisabled: boolean;
    euiDanger: boolean;
    get disabled(): boolean;
    set disabled(state: BooleanInput);
    get readonly(): any;
    set readonly(state: BooleanInput);
    get placeholder(): string | null;
    set placeholder(value: string | number | null);
    protected _disabled: boolean;
    protected _readonly: boolean;
    protected _placeholder: string;
    protected _statusListener: Subscription;
    protected _id: string;
    protected _viewContainerRef: ViewContainerRef;
    protected control: NgControl;
    protected _elementRef: ElementRef<any>;
    protected _renderer: Renderer2;
    protected injector: Injector;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    getCssClasses(rootClass: string): string;
    protected getPlaceholderAttribute(): string | undefined;
    protected setPlaceholderAttribute(value: string | null): void;
    protected setIdAttribute(value?: string | null): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputDirective, "input[euiInput]", never, { "euiDisabled": { "alias": "euiDisabled"; "required": false; }; "euiDanger": { "alias": "euiDanger"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, false, never>;
    static ngAcceptInputType_euiDisabled: unknown;
    static ngAcceptInputType_euiDanger: unknown;
}

type SizeVariant = '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | 'auto' | string;
type Variant = 'primary' | 'branding' | 'secondary' | 'secondaryLight' | 'info' | 'success' | 'warning' | 'danger' | 'inverse' | string;
/**
 * @internal
 */
declare class BaseStatesDirective {
    euiPrimary: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiBranding: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSecondary: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSecondaryLight: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiInfo: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSuccess: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiWarning: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiDanger: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiInverse: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiVariant: _angular_core.InputSignal<string>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiVariantState: _angular_core.WritableSignal<string>;
    euiSize2XS: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeXS: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeS: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeM: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeXL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSize2XL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSize3XL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSize4XL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSize5XL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSize6XL: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiSizeAuto: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeVariant: _angular_core.InputSignal<string>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use css
     */
    euiSizeVariantState: _angular_core.WritableSignal<string>;
    euiRounded: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiOutline: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiCompact: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiResponsive: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiHighlighted: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiClearable: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiLoading: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiInverted: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiStart: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    euiEnd: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiPrimaryState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiOutlineState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiDisabledState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use css
     */
    euiInfoState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use css
     */
    euiSizeLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use css
     */
    euiDangerState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiBrandingState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSecondaryState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSecondaryLightState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSuccessState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiWarningState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiInverseState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize2XSState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeXSState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeSState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeMState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeXLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize2XLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize3XLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize4XLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize5XLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSize6XLState: _angular_core.WritableSignal<boolean>;
    /**
     * @deprecated to be removed as the parent component should NOT have to know about individual states of the base
     * directive, but instead just set the rootClass and use cssClasses directly
     */
    euiSizeAutoState: _angular_core.WritableSignal<boolean>;
    rootClass: _angular_core.WritableSignal<string>;
    cssClasses: _angular_core.Signal<string>;
    constructor();
    /**
     * @deprecated use cssClasses instead and set rootClass signal directly
     * @param rootClass
     */
    getCssClasses(rootClass: string): string;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseStatesDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseStatesDirective, "[euiBase]", never, { "euiPrimary": { "alias": "euiPrimary"; "required": false; "isSignal": true; }; "euiBranding": { "alias": "euiBranding"; "required": false; "isSignal": true; }; "euiSecondary": { "alias": "euiSecondary"; "required": false; "isSignal": true; }; "euiSecondaryLight": { "alias": "euiSecondaryLight"; "required": false; "isSignal": true; }; "euiInfo": { "alias": "euiInfo"; "required": false; "isSignal": true; }; "euiSuccess": { "alias": "euiSuccess"; "required": false; "isSignal": true; }; "euiWarning": { "alias": "euiWarning"; "required": false; "isSignal": true; }; "euiDanger": { "alias": "euiDanger"; "required": false; "isSignal": true; }; "euiInverse": { "alias": "euiInverse"; "required": false; "isSignal": true; }; "euiVariant": { "alias": "euiVariant"; "required": false; "isSignal": true; }; "euiSize2XS": { "alias": "euiSize2XS"; "required": false; "isSignal": true; }; "euiSizeXS": { "alias": "euiSizeXS"; "required": false; "isSignal": true; }; "euiSizeS": { "alias": "euiSizeS"; "required": false; "isSignal": true; }; "euiSizeM": { "alias": "euiSizeM"; "required": false; "isSignal": true; }; "euiSizeL": { "alias": "euiSizeL"; "required": false; "isSignal": true; }; "euiSizeXL": { "alias": "euiSizeXL"; "required": false; "isSignal": true; }; "euiSize2XL": { "alias": "euiSize2XL"; "required": false; "isSignal": true; }; "euiSize3XL": { "alias": "euiSize3XL"; "required": false; "isSignal": true; }; "euiSize4XL": { "alias": "euiSize4XL"; "required": false; "isSignal": true; }; "euiSize5XL": { "alias": "euiSize5XL"; "required": false; "isSignal": true; }; "euiSize6XL": { "alias": "euiSize6XL"; "required": false; "isSignal": true; }; "euiSizeAuto": { "alias": "euiSizeAuto"; "required": false; "isSignal": true; }; "euiSizeVariant": { "alias": "euiSizeVariant"; "required": false; "isSignal": true; }; "euiRounded": { "alias": "euiRounded"; "required": false; "isSignal": true; }; "euiOutline": { "alias": "euiOutline"; "required": false; "isSignal": true; }; "euiCompact": { "alias": "euiCompact"; "required": false; "isSignal": true; }; "euiDisabled": { "alias": "euiDisabled"; "required": false; "isSignal": true; }; "euiResponsive": { "alias": "euiResponsive"; "required": false; "isSignal": true; }; "euiHighlighted": { "alias": "euiHighlighted"; "required": false; "isSignal": true; }; "euiClearable": { "alias": "euiClearable"; "required": false; "isSignal": true; }; "euiLoading": { "alias": "euiLoading"; "required": false; "isSignal": true; }; "euiInverted": { "alias": "euiInverted"; "required": false; "isSignal": true; }; "euiStart": { "alias": "euiStart"; "required": false; "isSignal": true; }; "euiEnd": { "alias": "euiEnd"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare const euiAnimationCollapse: _angular_animations.AnimationTriggerMetadata;

export { BaseStatesDirective, InputDirective, euiAnimationCollapse };
export type { SizeVariant, Variant };
//# sourceMappingURL=eui-components-shared.d.ts.map
