import { Duration } from 'date-fns'; import type { CalendarConstraint } from './types'; import type { Matcher } from 'react-day-picker'; import type { DisabledTimes } from '../../time-picker'; /** * min <= 선택한 시점 */ export declare function constraintMin(min: Date): CalendarConstraint; /** * 선택한 시점 < max */ export declare function constraintMax(max: Date): CalendarConstraint; /** * min < 선택한 시점 < max */ export declare function constraintBetween(min: Date, max: Date): CalendarConstraint; /** * 선택한 시점이 특정 요일 (0 = 일요일)에 해당하는 경우에만 허용합니다. */ export declare function constraintOnlyDaysOfTheWeek(days: number[]): CalendarConstraint; /** * 선택한 시점이 평일 (월-금)인 경우에만 허용합니다. */ export declare function constraintOnlyWeekdays(): CalendarConstraint; /** * 선택한 시점이 주말 (토-일)인 경우에만 허용합니다. */ export declare function constraintOnlyWeekends(): CalendarConstraint; /** * 시작 시점과 종료 시점 사이의 기간이 duration 미만이어야 합니다. */ export declare function constraintMaxDuration(duration: Duration): CalendarConstraint; /** * 시작 시점과 종료 시점 사이의 기간이 duration 이상이어야 합니다. */ export declare function constraintMinDuration(duration: Duration): CalendarConstraint; /** * 시작 시점과 종료 시점 사이의 기간이 seconds 미만이어야 합니다. */ export declare function constraintMaxSeconds(seconds: number): CalendarConstraint; /** * 시작 시점과 종료 시점 사이의 기간이 seconds 이상이어야 합니다. */ export declare function constraintMinSeconds(seconds: number): CalendarConstraint; /** * 여러 validator를 AND 조건으로 합칩니다. (a && b && c && ...) */ export declare function constraintAnd(...validators: CalendarConstraint[]): CalendarConstraint; /** * 여러 validator를 OR 조건으로 합칩니다. (a || b || c || ...) */ export declare function constraintOr(...validators: CalendarConstraint[]): CalendarConstraint; /** * validator의 반대 결과를 반환합니다 (!a) */ export declare function constraintNot(validator: CalendarConstraint): CalendarConstraint; /** * 날짜 구간의 모든 구간이 조건에 해당하는지 (즉, 연속적인 구간이 모두 조건을 충족하는지) 확인합니다. */ export declare function constraintEnforceContinuous(validator: CalendarConstraint): CalendarConstraint; /** * items에 여러 구간이 존재할 때, 각 구간 사이에 최소 seconds만큼의 여백이 존재하도록 강제합니다. */ export declare function constraintSecondsBetweenItems(seconds: number): CalendarConstraint; /** * 선택한 시각이 해당 시각 이후인지 확인합니다. (9:00:00 지정시 각 날짜 해당 시각 이후에만 선택 가능) */ export declare function constraintTimeMin(hours: number, minutes?: number, seconds?: number): CalendarConstraint; /** * 선택한 시각이 해당 시각 이전인지 확인합니다. (18:00:00 지정시 각 날짜 해당 시각 이전에만 선택 가능) */ export declare function constraintTimeMax(hours: number, minutes?: number, seconds?: number): CalendarConstraint; /** * 모든 시점을 허용합니다. */ export declare function constraintTrue(): CalendarConstraint; /** * 모든 시점을 불허합니다. */ export declare function constraintFalse(): CalendarConstraint; /** * 각 날짜 (day)에 대해 checker 함수를 실행해서 각 날짜의 유효성을 확인합니다. */ export declare function constraintDateDiscreteChecker(checker: (date: Date) => boolean): CalendarConstraint; /** * react-day-picker의 Matcher 패턴을 CalendarConstraint로 변환합니다. */ export declare function constraintDayPickerMatcher(matcher: Matcher | Matcher[]): CalendarConstraint; /** * 각 날짜(day)별로 1분 별로 구분된 비트맵을 활용해서 각 시점의 유효성을 검증합니다. * 가령, bitmap[0]은 0시 0분을 나타내며, bitmap[60]은 1시 0분을 나타냅니다. * bitmap은 무조건 1,440 (60 * 24)의 길이를 가지고 있습니다. * bitmap의 각 원소가 0이 아닌 경우 유효한 시점, 0인 경우 불가능한 시점으로 인식합니다. * @param getBitmap 각 날짜에 대해 output에 비트맵을 채우는 함수입니다. */ export declare function constraintTimeBitmap(getBitmap: (date: Date, range: 'from' | 'to', output: Uint8Array) => void): CalendarConstraint; /** * PDS TimePicker에서 사용하는 DisabledTimes을 CalendarConstraint로 변환합니다. */ export declare function constraintDisabledTimes(getDisabledTimes: (date: Date, range?: 'from' | 'to') => DisabledTimes): CalendarConstraint; /** * 시점이 n분 단위로 맞아 떨어지도록 합니다. "5"를 지정하면 0, 5, 10, 15, ... 55 분을 지정할 수 있습니다. * 60과 나누어 떨어지지 않는 경우에는, 각 시점별로 나머지가 넘어가지 않기 때문에, 가령 "55"를 지정하는 경우 각 시간별로 0, 55를 지정할 수 있게 됩니다. */ export declare function constraintIncrementMinute(incrementMinute?: number): CalendarConstraint;