import { NcDateStruct } from './datepicker.model';
import * as i0 from "@angular/core";
export declare function NC_DATEPICKER_PARSER_FORMATTER_FACTORY(localeId: string): NcDateParserFormatterDefault;
/**
 * Converts between the internal `NcDateStruct` model presentation and a `string` that is displayed in the
 * input element.
 *
 * When user types something in the input this service attempts to parse it into a `NcDateStruct` object.
 * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`
 * in the input.
 *
 * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI
 * to use an alternative string format or a custom parsing logic.
 */
export declare abstract class NcDateParserFormatter {
    /**
     * Parses the given `string` to an `NcDateStruct`.
     *
     * Implementations should try their best to provide a result, even
     * partial. They must return `null` if the value can't be parsed.
     */
    abstract parse(value: string): NcDateStruct | null;
    /**
     * Formats the given `NcDateStruct` to a `string`.
     *
     * Implementations should return an empty string if the given date is `null`,
     * and try their best to provide a partial result if the given date is incomplete or invalid.
     */
    abstract format(date: NcDateStruct | null): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcDateParserFormatter, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NcDateParserFormatter>;
}
export declare const DATE_INPUT_FORMATS: {
    [key: string]: string[];
};
export declare const DATE_OUTPUT_FORMATS: {
    [key: string]: string;
};
export declare class NcDateParserFormatterDefault extends NcDateParserFormatter {
    private locale;
    constructor(locale: string);
    parse(value: string): NcDateStruct;
    format(date: NcDateStruct): string;
    private dateFormatToRegexp;
    private addYearPadding;
    private printUnkownLocaleWarning;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcDateParserFormatterDefault, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NcDateParserFormatterDefault>;
}
