import { ElementRef, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator, ValidatorFn } from '@angular/forms'; import { Subject } from 'rxjs'; import { DateFilterFn, ExtractDateTypeFromSelection, RealsoftDatepickerControl, RealsoftDatepickerInputEvent, RealsoftDatepickerPanel, RealsoftDateSelectionModel, RealsoftDateSelectionModelChange } from './models'; import { DateAdapter } from './shared/date-adapter'; import * as i0 from "@angular/core"; export declare const REALSOFT_DATEPICKER_VALUE_ACCESSOR: any; export declare const REALSOFT_DATEPICKER_VALIDATORS: any; export declare abstract class RealsoftDatepickerInputBase> implements ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy, Validator { protected _elementRef: ElementRef; _dateAdapter: DateAdapter; private _dateFormats; private _isInitialized; protected _model: RealsoftDateSelectionModel | undefined; private _disabled; readonly stateChanges: Subject; _onTouched: () => void; _validatorOnChange: () => void; protected _validator: ValidatorFn | null; private _onChange; private _valueChangeSubscription; private _localeSubscription; constructor(...args: unknown[]); ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private _pendingValue; get value(): D | null; set value(value: D | null); get disabled(): boolean; set disabled(value: boolean); readonly dateChange: EventEmitter>; readonly dateInput: EventEmitter>; protected abstract openPopup(): void; protected abstract assignValueToModel(model: D | null): void; protected abstract getValueFromModel(modelValue: S): D | null; protected abstract validator: ValidatorFn | null; protected abstract shouldHandleChangeEvent(event: RealsoftDateSelectionModelChange): boolean; protected _lastValueValid: boolean; protected formatValue(value: D | null): void; private assignValue; private isValidValue; protected parentDisabled(): boolean; protected assignValueProgrammatically(value: D | null): void; dateMatchesFilter(value: D | null): boolean; private _parseValidator; private _filterValidator; private _minValidator; private _maxValidator; protected getValidators(): ValidatorFn[]; abstract getMinDate(): D | null; abstract getMaxDate(): D | null; protected abstract getDateFilter(): DateFilterFn | undefined; registerModel(model: RealsoftDateSelectionModel): void; registerOnValidatorChange(fn: () => void): void; validate(c: AbstractControl): ValidationErrors | null; writeValue(value: D): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; onInput(event: Event): void; onChange(): void; onBlur(): void; onKeyDown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "dateChange": "dateChange"; "dateInput": "dateInput"; }, never, never, true, never>; static ngAcceptInputType_disabled: unknown; } export declare function dateInputsHaveChanged(changes: SimpleChanges, adapter: DateAdapter): boolean; export declare class RealsoftDatepickerInput extends RealsoftDatepickerInputBase implements RealsoftDatepickerControl, OnDestroy { private _formField; private _closedSubscription; private _openedSubscription; _datepicker: RealsoftDatepickerPanel, D | null, D>; protected _ariaOwns: import("@angular/core").WritableSignal; private _min; private _max; private _dateFilter; protected validator: ValidatorFn | null; set realsoftDatepicker(datepicker: RealsoftDatepickerPanel, D | null, D>); get min(): D | null; set min(value: D | null); get max(): D | null; set max(value: D | null); get dateFilter(): DateFilterFn; set dateFilter(value: DateFilterFn); constructor(...args: unknown[]); getConnectedOverlayOrigin(): ElementRef; getOverlayLabelId(): string | null; getStartValue(): D | null; protected openPopup(): void; protected getValueFromModel(modelValue: D | null): D | null; protected assignValueToModel(modelValue: D | null): void; getMinDate(): D | null; getMaxDate(): D | null; protected getDateFilter(): DateFilterFn; protected shouldHandleChangeEvent(event: RealsoftDateSelectionModelChange): boolean; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "input[realsoftDatepicker]", ["realsoftDatepickerInput"], { "realsoftDatepicker": { "alias": "realsoftDatepicker"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "dateFilter": { "alias": "realsoftDatepickerFilter"; "required": false; }; }, {}, never, never, true, never>; }