import { NcDateStruct } from '../datepicker.model';
import * as i0 from "@angular/core";
export declare function NC_DATE_ADAPTER_FACTORY(): NcDateStructAdapter;
/**
 * An abstract service that does the conversion between the internal datepicker `NcDateStruct` model and
 * any provided user date model `D`, ex. a string, a native date, etc.
 *
 * The default datepicker implementation assumes we use `NcDateStruct` as a user model.
 */
export declare abstract class NcDateAdapter<D> {
    /**
     * Converts a user-model date of type `D` to an `NcDateStruct` for internal use.
     */
    abstract fromModel(value: D | null): NcDateStruct | null;
    /**
     * Converts an internal `NcDateStruct` date to a user-model date of type `D`.
     */
    abstract toModel(date: NcDateStruct | null): D | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcDateAdapter<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NcDateAdapter<any>>;
}
export declare class NcDateStructAdapter extends NcDateAdapter<NcDateStruct> {
    fromModel(date: NcDateStruct | null): NcDateStruct | null;
    toModel(date: NcDateStruct | null): NcDateStruct | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcDateStructAdapter, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NcDateStructAdapter>;
}
