import { ExtractResult, Match } from "@microsoft/recognizers-text"; import { BaseNumberExtractor, BaseNumberParser } from "@microsoft/recognizers-text-number"; import { Token, DateTimeResolutionResult } from "./utilities"; import { BaseDurationParser } from "./baseDuration"; import { IDateTimeParser, DateTimeParseResult } from "./parsers"; import { BaseDateParser } from "./baseDate"; import { IDateTimeExtractor } from "./baseDateTime"; export interface IDatePeriodExtractorConfiguration { simpleCasesRegexes: RegExp[]; illegalYearRegex: RegExp; YearRegex: RegExp; tillRegex: RegExp; followedUnit: RegExp; numberCombinedWithUnit: RegExp; pastRegex: RegExp; futureRegex: RegExp; weekOfRegex: RegExp; monthOfRegex: RegExp; dateUnitRegex: RegExp; inConnectorRegex: RegExp; rangeUnitRegex: RegExp; nowRegex: RegExp; datePointExtractor: IDateTimeExtractor; integerExtractor: BaseNumberExtractor; numberParser: BaseNumberParser; durationExtractor: IDateTimeExtractor; getFromTokenIndex(source: string): { matched: boolean; index: number; }; getBetweenTokenIndex(source: string): { matched: boolean; index: number; }; hasConnectorToken(source: string): boolean; } export declare class BaseDatePeriodExtractor implements IDateTimeExtractor { protected readonly extractorName: string; protected readonly config: IDatePeriodExtractorConfiguration; constructor(config: IDatePeriodExtractorConfiguration); extract(source: string, refDate: Date): ExtractResult[]; protected matchSimpleCases(source: string): Token[]; protected mergeTwoTimePoints(source: string, refDate: Date): Token[]; private matchDuration; private singleTimePointWithPatterns; private getTokenForRegexMatching; private matchRegexInPrefix; private infixBoundaryCheck; } export interface IDatePeriodParserConfiguration { dateExtractor: IDateTimeExtractor; dateParser: BaseDateParser; durationExtractor: IDateTimeExtractor; durationParser: BaseDurationParser; integerExtractor: BaseNumberExtractor; numberParser: BaseNumberParser; monthFrontBetweenRegex: RegExp; betweenRegex: RegExp; monthFrontSimpleCasesRegex: RegExp; simpleCasesRegex: RegExp; oneWordPeriodRegex: RegExp; monthWithYear: RegExp; monthNumWithYear: RegExp; yearRegex: RegExp; relativeRegex: RegExp; pastRegex: RegExp; futureRegex: RegExp; inConnectorRegex: RegExp; weekOfMonthRegex: RegExp; weekOfYearRegex: RegExp; quarterRegex: RegExp; quarterRegexYearFront: RegExp; allHalfYearRegex: RegExp; seasonRegex: RegExp; weekOfRegex: RegExp; monthOfRegex: RegExp; whichWeekRegex: RegExp; restOfDateRegex: RegExp; laterEarlyPeriodRegex: RegExp; weekWithWeekDayRangeRegex: RegExp; unspecificEndOfRangeRegex: RegExp; nowRegex: RegExp; tokenBeforeDate: string; dayOfMonth: ReadonlyMap; monthOfYear: ReadonlyMap; cardinalMap: ReadonlyMap; seasonMap: ReadonlyMap; unitMap: ReadonlyMap; getSwiftDayOrMonth(source: string): number; getSwiftYear(source: string): number; isFuture(source: string): boolean; isYearToDate(source: string): boolean; isMonthToDate(source: string): boolean; isWeekOnly(source: string): boolean; isWeekend(source: string): boolean; isMonthOnly(source: string): boolean; isYearOnly(source: string): boolean; isLastCardinal(source: string): boolean; } export declare class BaseDatePeriodParser implements IDateTimeParser { protected readonly parserName: string; protected readonly config: IDatePeriodParserConfiguration; protected readonly inclusiveEndPeriod: any; private readonly weekOfComment; private readonly monthOfComment; constructor(config: IDatePeriodParserConfiguration, inclusiveEndPeriod?: boolean); parse(extractorResult: ExtractResult, referenceDate?: Date): DateTimeParseResult | null; private parseMonthWithYear; protected getMatchSimpleCase(source: string): Match; protected parseSimpleCases(source: string, referenceDate: Date): DateTimeResolutionResult; private isPresent; protected parseOneWordPeriod(source: string, referenceDate: Date): DateTimeResolutionResult; protected mergeTwoTimePoints(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseNowAsDate(source: string, referenceDate: Date): DateTimeParseResult; protected parseYear(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseDuration(source: string, referenceDate: Date): DateTimeResolutionResult; private getSwiftDate; protected parseWeekOfMonth(source: string, referenceDate: Date): DateTimeResolutionResult; protected getWeekOfMonth(cardinal: number, month: number, year: number, referenceDate: Date, noYear: boolean): DateTimeResolutionResult; private parseWeekOfYear; protected parseHalfYear(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseQuarter(source: string, referenceDate: Date): DateTimeResolutionResult; protected parseSeason(source: string, referenceDate: Date): DateTimeResolutionResult; private parseWhichWeek; private parseWeekOfDate; private parseMonthOfDate; protected computeDate(cardinal: number, weekday: number, month: number, year: number): Date; private getWeekRangeFromDate; private getMonthRangeFromDate; }