import { HxaTimeStruct } from './hxa-time-struct';
import * as i0 from "@angular/core";
export declare function NGB_DATEPICKER_TIME_ADAPTER_FACTORY(): NgbTimeStructAdapter;
/**
 * An abstract service that does the conversion between the internal time-picker `HxaTimeStruct` model and
 * any provided user time model `T`, ex. a string, a native date, etc.
 *
 * The adapter is used **only** for conversion when binding time-picker to a form control,
 * ex. `[(ngModel)]="userTimeModel"`. Here `userTimeModel` can be of any type.
 *
 * The default time-picker implementation assumes we use `HxaTimeStruct` as a user model.
 *
 * See the [custom time adapter demo](#/components/time-picker/examples#adapter) for an example.
 *
 * @since 2.2.0
 */
export declare abstract class HxaTimeAdapter<T> {
    /**
     * Converts a user-model time of type `T` to an `HxaTimeStruct` for internal use.
     */
    abstract fromModel(value: T | null): HxaTimeStruct | null;
    /**
     * Converts an internal `HxaTimeStruct` time to a user-model time of type `T`.
     */
    abstract toModel(time: HxaTimeStruct | null): T | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<HxaTimeAdapter<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HxaTimeAdapter<any>>;
}
export declare class NgbTimeStructAdapter extends HxaTimeAdapter<HxaTimeStruct> {
    /**
     * Converts a HxaTimeStruct value into HxaTimeStruct value
     */
    fromModel(time: HxaTimeStruct | null): HxaTimeStruct | null;
    /**
     * Converts a HxaTimeStruct value into HxaTimeStruct value
     */
    toModel(time: HxaTimeStruct | null): HxaTimeStruct | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgbTimeStructAdapter, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NgbTimeStructAdapter>;
}
