import { Month, Options, PatternParser, Weekday } from "./core"; import { NamedRegExp } from "../characters"; import { DateFormatter, StringDateFormatter } from "./format"; import DateTimeFormatPart = Intl.DateTimeFormatPart; import DateTimeFormatPartTypes = Intl.DateTimeFormatPartTypes; export interface DataExtractor { extract(): string[]; } export declare class BaseDataExtractor { protected locale: string; protected options: Options; protected dates: Date[]; protected partType: DateTimeFormatPartTypes; constructor(locale: string, options: Options, dates: Date[], partType: DateTimeFormatPartTypes); } export declare function exactFormat(locale: string, options: Options, dates: Date[]): string[]; export declare abstract class FromFormatStringDataExtractor extends BaseDataExtractor implements DataExtractor { extract(): string[]; diff(data: string[]): string[]; } export declare class FromFormatStringMonthExtractor extends FromFormatStringDataExtractor { constructor(locale: string, options: Options, dates: Date[]); diff(data: string[]): string[]; private weekday; static readonly replaceYMD: RegExp; private replaceYearMonthDay; static readonly restoreYMD: RegExp; private restoreYearMonthDay; private day; } export declare class FromFormatStringWeekdayExtractor extends FromFormatStringDataExtractor { constructor(locale: string, options: Options, dates: Date[]); diff(data: string[]): string[]; private convertToNumeral; } export declare class LearningDateFormatter implements DateFormatter { private locale; private options; private yearValue; private monthValue; private dayValue; private weekdayValue; private numerals; private constructor(); static create(locale: string, options?: Options): LearningDateFormatter; get formatter(): StringDateFormatter; get formatted(): string; get months(): PatternParser; get month(): string; get weekdays(): PatternParser; get weekday(): string; get year(): string; get day(): string; get learningNamesPattern(): NamedRegExp; get actualNamesPattern(): NamedRegExp; format(date: Date): string; formatToParts(date: Date): DateTimeFormatPart[]; private collapseLiterals; private getType; private parsable; }