import { FactoryProvider, OnDestroy } from '@angular/core'; import { Observable } from 'rxjs'; import { NgxMatDateAdapter } from './core/date-adapter'; import * as i0 from "@angular/core"; /** A class representing a range of dates. */ export declare class NgxDateRange { /** The start date of the range. */ readonly start: D | null; /** The end date of the range. */ readonly end: D | null; /** * Ensures that objects with a `start` and `end` property can't be assigned to a variable that * expects a `DateRange` */ private _disableStructuralEquivalency; constructor( /** The start date of the range. */ start: D | null, /** The end date of the range. */ end: D | null); } /** * Conditionally picks the date type, if a DateRange is passed in. * @docs-private */ export type NgxExtractDateTypeFromSelection = T extends NgxDateRange ? D : NonNullable; /** * Event emitted by the date selection model when its selection changes. * @docs-private */ export interface NgxDateSelectionModelChange { /** New value for the selection. */ selection: S; /** Object that triggered the change. */ source: unknown; /** Previous value */ oldValue?: S; } /** * A selection model containing a date selection. * @docs-private */ export declare abstract class NgxMatDateSelectionModel> implements OnDestroy { /** The current selection. */ readonly selection: S; protected _adapter: NgxMatDateAdapter; private readonly _selectionChanged; /** Emits when the selection has changed. */ selectionChanged: Observable>; protected constructor( /** The current selection. */ selection: S, _adapter: NgxMatDateAdapter); /** * Updates the current selection in the model. * @param value New selection that should be assigned. * @param source Object that triggered the selection change. */ updateSelection(value: S, source: unknown): void; ngOnDestroy(): void; protected _isValidDateInstance(date: D): boolean; /** Adds a date to the current selection. */ abstract add(date: D | null): void; /** Checks whether the current selection is valid. */ abstract isValid(): boolean; /** Checks whether the current selection is complete. */ abstract isComplete(): boolean; /** Clones the selection model. */ abstract clone(): NgxMatDateSelectionModel; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } /** * A selection model that contains a single date. * @docs-private */ export declare class NgxMatSingleDateSelectionModel extends NgxMatDateSelectionModel { constructor(adapter: NgxMatDateAdapter); /** * Adds a date to the current selection. In the case of a single date selection, the added date * simply overwrites the previous selection */ add(date: D | null): void; /** Checks whether the current selection is valid. */ isValid(): boolean; /** * Checks whether the current selection is complete. In the case of a single date selection, this * is true if the current selection is not null. */ isComplete(): boolean; /** Clones the selection model. */ clone(): NgxMatSingleDateSelectionModel; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } /** * A selection model that contains a date range. * @docs-private */ export declare class NgxMatRangeDateSelectionModel extends NgxMatDateSelectionModel, D> { constructor(adapter: NgxMatDateAdapter); /** * Adds a date to the current selection. In the case of a date range selection, the added date * fills in the next `null` value in the range. If both the start and the end already have a date, * the selection is reset so that the given date is the new `start` and the `end` is null. */ add(date: D | null): void; /** Checks whether the current selection is valid. */ isValid(): boolean; /** * Checks whether the current selection is complete. In the case of a date range selection, this * is true if the current selection has a non-null `start` and `end`. */ isComplete(): boolean; /** Clones the selection model. */ clone(): NgxMatRangeDateSelectionModel; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } /** @docs-private */ export declare function NGX_MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY(parent: NgxMatSingleDateSelectionModel, adapter: NgxMatDateAdapter): NgxMatSingleDateSelectionModel; /** * Used to provide a single selection model to a component. * @docs-private */ export declare const NGX_MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER: FactoryProvider; /** @docs-private */ export declare function NGX_MAT_RANGE_DATE_SELECTION_MODEL_FACTORY(parent: NgxMatSingleDateSelectionModel, adapter: NgxMatDateAdapter): NgxMatSingleDateSelectionModel | NgxMatRangeDateSelectionModel; /** * Used to provide a range selection model to a component. * @docs-private */ export declare const NGX_MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER: FactoryProvider;