import { ExtractResult, Match } from "@microsoft/recognizers-text"; import { BaseNumberExtractor, BaseNumberParser } from "@microsoft/recognizers-text-number"; import { Token, DateTimeResolutionResult, IDateTimeUtilityConfiguration } from "./utilities"; import { IDateTimeExtractor } from "./baseDateTime"; import { IDateTimeParser, DateTimeParseResult } from "./parsers"; export interface IDateExtractorConfiguration { dateRegexList: RegExp[]; implicitDateList: RegExp[]; monthEnd: RegExp; ofMonth: RegExp; dateUnitRegex: RegExp; forTheRegex: RegExp; weekDayAndDayOfMonthRegex: RegExp; relativeMonthRegex: RegExp; strictRelativeRegex: RegExp; weekDayRegex: RegExp; dayOfWeek: ReadonlyMap; ordinalExtractor: BaseNumberExtractor; integerExtractor: BaseNumberExtractor; numberParser: BaseNumberParser; durationExtractor: IDateTimeExtractor; utilityConfiguration: IDateTimeUtilityConfiguration; rangeConnectorSymbolRegex: RegExp; } export declare class BaseDateExtractor implements IDateTimeExtractor { protected readonly extractorName: string; protected readonly config: IDateExtractorConfiguration; constructor(config: IDateExtractorConfiguration); extract(source: string, refDate: Date): ExtractResult[]; protected basicRegexMatch(source: string): Token[]; protected ValidateMatch(match: Match, text: string): boolean; protected TrimStartRangeConnectorSymbols(text: string): string; protected StartsWithBasicDate(text: string): boolean; protected implicitDate(source: string): Token[]; private numberWithMonth; protected durationWithBeforeAndAfter(source: string, refDate: Date): Token[]; } export interface IDateParserConfiguration { ordinalExtractor: BaseNumberExtractor; integerExtractor: BaseNumberExtractor; cardinalExtractor: BaseNumberExtractor; durationExtractor: IDateTimeExtractor; durationParser: IDateTimeParser; numberParser: BaseNumberParser; monthOfYear: ReadonlyMap; dayOfMonth: ReadonlyMap; dayOfWeek: ReadonlyMap; unitMap: ReadonlyMap; cardinalMap: ReadonlyMap; dateRegex: RegExp[]; onRegex: RegExp; specialDayRegex: RegExp; specialDayWithNumRegex: RegExp; nextRegex: RegExp; unitRegex: RegExp; monthRegex: RegExp; weekDayRegex: RegExp; lastRegex: RegExp; thisRegex: RegExp; weekDayOfMonthRegex: RegExp; forTheRegex: RegExp; weekDayAndDayOfMonthRegex: RegExp; relativeMonthRegex: RegExp; strictRelativeRegex: RegExp; relativeWeekDayRegex: RegExp; utilityConfiguration: IDateTimeUtilityConfiguration; dateTokenPrefix: string; getSwiftDay(source: string): number; getSwiftMonthOrYear(source: string): number; isCardinalLast(source: string): boolean; } export declare class BaseDateParser implements IDateTimeParser { protected readonly parserName: string; protected readonly config: IDateParserConfiguration; constructor(config: IDateParserConfiguration); parse(extractorResult: ExtractResult, referenceDate?: Date): DateTimeParseResult | null; protected parseBasicRegexMatch(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseImplicitDate(source: string, referenceDate: Date): DateTimeResolutionResult; private parseNumberWithMonth; private parseSingleNumber; protected parserDurationWithAgoAndLater(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseWeekdayOfMonth(source: string, referenceDate: Date): DateTimeResolutionResult; protected matchToDate(match: Match, referenceDate: Date, relativeStr: string): DateTimeResolutionResult; private computeDate; }