import { ExtractResult } from "@microsoft/recognizers-text"; import { BaseNumberExtractor, BaseNumberParser } from "@microsoft/recognizers-text-number"; import { IDateTimeParser, DateTimeParseResult } from "./parsers"; import { IDateTimeExtractor } from "./baseDateTime"; export interface IDurationExtractorConfiguration { allRegex: RegExp; halfRegex: RegExp; followedUnit: RegExp; numberCombinedWithUnit: RegExp; anUnitRegex: RegExp; inexactNumberUnitRegex: RegExp; suffixAndRegex: RegExp; relativeDurationUnitRegex: RegExp; moreThanRegex: RegExp; lessThanRegex: RegExp; cardinalExtractor: BaseNumberExtractor; } export declare class BaseDurationExtractor implements IDateTimeExtractor { private readonly extractorName; private readonly config; constructor(config: IDurationExtractorConfiguration); extract(source: string, refDate: Date): ExtractResult[]; private resolveMoreThanOrLessThanPrefix; private numberWithUnit; private numberWithUnitAndSuffix; private implicitDuration; private getTokensFromRegex; } export interface IDurationParserConfiguration { cardinalExtractor: BaseNumberExtractor; numberParser: BaseNumberParser; followedUnit: RegExp; suffixAndRegex: RegExp; numberCombinedWithUnit: RegExp; anUnitRegex: RegExp; allDateUnitRegex: RegExp; halfDateUnitRegex: RegExp; inexactNumberUnitRegex: RegExp; unitMap: ReadonlyMap; unitValueMap: ReadonlyMap; doubleNumbers: ReadonlyMap; } export declare class BaseDurationParser implements IDateTimeParser { protected readonly parserName: string; protected readonly config: IDurationParserConfiguration; constructor(config: IDurationParserConfiguration); parse(extractorResult: ExtractResult, referenceDate?: Date): DateTimeParseResult | null; private parseNumberWithUnit; private parseImplicitDuration; private getResultFromRegex; private parseNumberSpaceUnit; private parseNumberWithUnitAndSuffix; private parseNumberCombinedUnit; private parseAnUnit; private parseInexactNumberUnit; protected isLessThanDay(source: string): boolean; }