import { EventEmitter } from '@angular/core'; import { ControlValueAccessor, NgControl } from '@angular/forms'; import { FloatLabelType, MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field'; import * as i0 from "@angular/core"; /** * Value emitted and consumed by the date range picker. * The date instance type depends on the configured Material date adapter * (for example `Date`, `Moment`, or `Luxon` date objects). * Both properties are nullable so partially selected ranges can be represented safely. */ export interface DateRangeValue { start: TDate | null; end: TDate | null; } /** * Material-based date range picker component with a single `value` / `valueChange` API. * Supports Angular forms integration, disabled state, and optional minimum and maximum dates. * * @example * ```html * * * ``` */ export declare class DateRangePickerComponent implements ControlValueAccessor { ngControl: NgControl; /** * Label rendered inside the form field. */ label?: string; /** * Angular Material form-field appearance. * @default 'fill' */ appearance: MatFormFieldAppearance; /** * Floating label behavior for the form field. * @default 'auto' */ floatLabel: FloatLabelType; /** * Controls how the subscript area reserves space for hints and errors. * @default 'dynamic' */ subscriptSizing: SubscriptSizing; /** * Placeholder shown in the start date input. * @default 'aaaa-mm-dd' */ startPlaceholder: string; /** * Placeholder shown in the end date input. * @default 'aaaa-mm-dd' */ endPlaceholder: string; /** * Disables the component when set directly by the consumer. * Combined with Angular forms disabled state through `setDisabledState`. * @default false */ disabled: boolean; /** * Minimum selectable date applied to the range input. */ min: object | null; /** * Maximum selectable date applied to the range input. */ max: object | null; private _value; /** * Current selected range. * Incoming values are normalized so the component always works with a safe `{ start, end }` object. */ get value(): DateRangeValue; set value(value: Partial | null | undefined); /** * Emits whenever the selected range changes. */ valueChange: EventEmitter>; private cvaDisabled; private onChange; onTouched: () => void; /** * Effective disabled state, combining direct input binding and Angular forms state. */ get isDisabled(): boolean; /** * Registers the component as the value accessor when used with Angular forms. */ constructor(ngControl: NgControl); /** * Writes a new value from Angular forms into the component. */ writeValue(obj: DateRangeValue | null | undefined): void; /** * Stores the callback used by Angular forms when the value changes. */ registerOnChange(fn: (value: DateRangeValue) => void): void; /** * Stores the callback used by Angular forms when the control is touched. */ registerOnTouched(fn: VoidFunction): void; /** * Updates the disabled state coming from Angular forms. */ setDisabledState(isDisabled: boolean): void; /** * Normalizes and emits the current range after either input changes. */ onDateChange(): void; /** * Ensures the component always stores a safe range object with nullable `start` and `end` keys. * @internal */ private normalizeValue; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; }