import { Observable } from 'rxjs'; import { NgControl } from '@angular/forms'; /** An interface which allows a control to work inside of a `BllFormField`. */ export declare abstract class BllFormFieldControl { /** The value of the control. */ value?: T | null; /** * Stream that emits whenever the state of the control changes such that the parent `BllFormField` * needs to run change detection. */ readonly stateChanges: Observable; /** The element ID for this control. */ readonly id: string; /** The placeholder for this control. */ readonly placeholder: string; /** Gets the NgControl for this control. */ readonly ngControl: NgControl | null; /** Whether the control is focused. */ readonly focused: boolean; /** Whether the control is empty. */ readonly empty: boolean; /** Wherer tjhthe label should try to float */ readonly shouldLabelFloat: boolean; /** Whether the control is required. */ readonly required: boolean; /** Whether the control is disabled. */ disabled: boolean; /** Whether the control is in an error state. */ readonly errorState: boolean; /** * An optional name for the control type that can be used to distinguish `bll-form-field` elements * based on their control type. The form field will add a class, * `bll-form-field-type-{{controlType}}` to its root element. */ readonly controlType?: string; /** * Whether the input is currently in an autofilled state. If property is not present on the * control it is assumed to be false. */ /** Handles a click on the control's container. */ abstract onContainerClick(event: MouseEvent): void; }