import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
import { FormControl } from '@angular/forms';
import { DateRangeInputMetadata, DateRangeChangeEvent } from './types';
import * as i0 from "@angular/core";
export declare class DateRangeInputComponent implements OnInit, OnDestroy {
    props: DateRangeInputMetadata;
    rangeChange: EventEmitter<DateRangeChangeEvent>;
    states: {
        ENABLED: "ENABLED";
        DISABLED: "DISABLED";
        WORKING: "WORKING";
        ERROR: "ERROR";
    };
    internalStartControl: FormControl<string>;
    internalEndControl: FormControl<string>;
    startDatetimeId: string;
    endDatetimeId: string;
    showDayCount: boolean;
    private i18n;
    private valueSubscription;
    /** Get done button text from props or i18n */
    getDoneText(): string;
    /** Get cancel button text from props or i18n */
    getCancelText(): string;
    /** Get start date fallback label */
    getStartDateFallback(): string;
    /** Get end date fallback label */
    getEndDateFallback(): string;
    /** Get day/days label based on count */
    getDayLabel(): string;
    ngOnInit(): void;
    ngOnDestroy(): void;
    getLabel(): string;
    getStartLabel(): string;
    getEndLabel(): string;
    getHint(): string;
    getMinDate(): string | undefined;
    getMaxDate(): string | undefined;
    getMaxStartDate(): string | undefined;
    getMinEndDate(): string | undefined;
    get hasError(): boolean;
    getErrorMessage(): string;
    get dayCount(): number | null;
    onStartDateChange(event: CustomEvent): void;
    onEndDateChange(event: CustomEvent): void;
    private updateMainControl;
    private validateRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent, "val-date-range-input", never, { "props": { "alias": "props"; "required": false; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
}
