import { DateStringRule } from './date-string/date-string-types'; import { Guard, IGuardOptions } from '../core/guard'; import { GuardResult } from '../core/guard-result'; export declare class DateStringGuard extends Guard { constructor(options?: IGuardOptions); /** * Checks if date string is strictly after the specified date. * @remarks Chainable method. * @param value */ isAfter(value: string): this; /** * Checks if date string is strictly before the specified date. * @remarks Chainable method. * @param value */ isBefore(value: string): this; /** * Checks if date string is a valid and existing ISO 8601 Date (YYYY-MM-DD). * @remarks Chainable method. * @see {@link https://en.wikipedia.org/wiki/ISO_8601} * @example 1982-03-16 */ isIso8601Date(): this; /** * Checks if date string is a valid and existing RFC 3339 Datetime. * * RFC 3339 is following the ISO 8601 DateTime format. The only difference is RFC allows us to replace “T” with “space”. * @remarks Chainable method. * @see {@link https://medium.com/easyread/understanding-about-rfc-3339-for-datetime-formatting-in-software-engineering-940aa5d5f68a} * @example 2019-10-12T07:20:50.52Z, 2019-10-12 07:20:50.52Z */ isRfc3339(): this; /** * Checks if date string is the same that the specified date. * @remarks Chainable method. * @param value */ isSame(value: string): this; /** * Checks if date string is the same or after the specified date. * @remarks Chainable method. * @param value */ isSameOrAfter(value: string): this; /** * Checks if date string is the same or before the specified date. * @remarks Chainable method. * @param value */ isSameOrBefore(value: string): this; /** * @override * @param rule * @param value */ protected checkRule(rule: DateStringRule, value: string): GuardResult; /** * @override */ protected typeGuard(): void; }