import { EventEmitter, InputSignal, OnDestroy, WritableSignal } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { ConnectedPosition, CdkOverlayOrigin, Overlay, ScrollStrategy } from '@angular/cdk/overlay';
import { TccMessagePopover } from '../tcc-message-popover/tcc-message-popover.component';
import { AlertType } from '../../../core/models/alert.model';
import { TccValidators } from '../../models/form-error.model';
import { TccRegisterMessageService } from '../../../core/services/tcc-register-message/tcc-register-message-service';
export interface TccFormFieldComponentAPI {
    id: string;
    form: InputSignal<AbstractControl>;
    highlighting: boolean;
    visible: boolean;
    background: string;
    disabled: boolean;
    readonly: boolean;
    colorClasses: string;
    sizeClasses: string;
    customClasses: string;
    widthString: string;
    overlayOrigin: CdkOverlayOrigin;
    overlayContainerClick: EventEmitter<MouseEvent>;
    overlayContainerMouseDown: EventEmitter<MouseEvent>;
}
export declare class TccFormFieldComponent implements TccFormFieldComponentAPI, OnDestroy {
    private registerMessageService;
    private overlay;
    overlayOrigin: CdkOverlayOrigin;
    form: InputSignal<AbstractControl>;
    validators: InputSignal<TccValidators[]>;
    set id(id: string);
    section: string;
    index: number;
    set highlighting(highlighting: boolean);
    set visible(visible: boolean);
    set background(background: string);
    set borderColor(borderColor: string);
    set disabled(disabled: boolean);
    set readonly(readonly: boolean);
    set colorClasses(colorClasses: string);
    set sizeClasses(sizeClasses: string);
    set customClasses(customClasses: string);
    set widthString(widthString: string);
    set labelFloating(labelFloating: boolean);
    set datepickerContainer(datepickerContainer: boolean);
    set disabledTopLabelHeight(disabledTopLabelHeight: boolean);
    set message(message: TccMessagePopover.data);
    set disableMessageOverlay(disable: boolean);
    overlayContainerClick: EventEmitter<MouseEvent>;
    overlayContainerMouseDown: EventEmitter<MouseEvent>;
    formFieldContainerMouseDown: EventEmitter<MouseEvent>;
    focusRequested: EventEmitter<void>;
    id$: WritableSignal<string>;
    highlighting$: WritableSignal<boolean>;
    borderColor$: WritableSignal<string>;
    visible$: WritableSignal<boolean>;
    background$: WritableSignal<string>;
    disabled$: WritableSignal<boolean>;
    readonly$: WritableSignal<boolean>;
    formControl$: WritableSignal<AbstractControl>;
    colorClasses$: WritableSignal<string>;
    sizeClasses$: WritableSignal<string>;
    customClasses$: WritableSignal<string>;
    widthString$: WritableSignal<string>;
    labelFloating$: WritableSignal<boolean>;
    datepickerContainer$: WritableSignal<boolean>;
    disabledTopLabelHeight$: WritableSignal<boolean>;
    AlertType: typeof AlertType;
    shownMessage$: WritableSignal<TccMessagePopover.data>;
    focusWithin: boolean;
    private errorShown;
    message$: WritableSignal<TccMessagePopover.data>;
    overlayPositions: ConnectedPosition[];
    private messageHubSubscription;
    scrollStrategy: ScrollStrategy;
    disableMessageOverlay$: WritableSignal<boolean>;
    private formControlUpdateOverlaySubscription;
    constructor(registerMessageService: TccRegisterMessageService, overlay: Overlay);
    ngOnDestroy(): void;
    focusContainerFocus(): void;
    focusContainerBlur(): void;
    setMessage(message: TccMessagePopover.data): void;
    private registerMessage;
    private removeMessage;
    private updateOverlay;
    private getColorString;
}
