import type { _NSCalendar } from "./NSCalendar.js";
import type { _NSCopying } from "./NSCopying.js";
import type { _NSDate } from "./NSDate.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSSecureCoding } from "./NSSecureCoding.js";
import type { _NSTimeZone } from "./NSTimeZone.js";
import type { NSCalendarUnit } from "./NSCalendarUnit.js";
export declare class _NSDateComponents extends _NSObject {
    static alloc(): _NSDateComponents;
    static new(): _NSDateComponents;
    init(): _NSDateComponents;
    /** @deprecated Use -weekOfMonth or -weekOfYear, depending on which you mean */
    week(): number;
    /**
     * @deprecated Use -setWeekOfMonth: or -setWeekOfYear:, depending on which you mean
     */
    setWeek$(v: number): void;
    /**
     * This API allows one to set a specific component of NSDateComponents, by enum constant value rather than property name. The calendar and timeZone and isLeapMonth properties cannot be set by this method.
     */
    setValue$forComponent$(value: number, unit: NSCalendarUnit): void;
    /**
     * This API allows one to get the value of a specific component of NSDateComponents, by enum constant value rather than property name. The calendar and timeZone and isLeapMonth property values cannot be retrieved by this method.
     */
    valueForComponent$(unit: NSCalendarUnit): number;
    /**
     * Reports whether or not the combination of properties which have been set in the receiver is a date which exists in the calendar. This method is not appropriate for use on NSDateComponents objects which are specifying relative quantities of calendar components. Except for some trivial cases (e.g., 'seconds' should be 0 - 59 in any calendar), this method is not necessarily cheap. If the time zone property is set in the NSDateComponents object, it is used.
     */
    isValidDateInCalendar$(calendar: _NSCalendar): boolean;
    calendar(): _NSCalendar | null;
    setCalendar$(value: _NSCalendar | null): void;
    timeZone(): _NSTimeZone | null;
    setTimeZone$(value: _NSTimeZone | null): void;
    era(): number;
    setEra$(value: number): void;
    year(): number;
    setYear$(value: number): void;
    month(): number;
    setMonth$(value: number): void;
    day(): number;
    setDay$(value: number): void;
    hour(): number;
    setHour$(value: number): void;
    minute(): number;
    setMinute$(value: number): void;
    second(): number;
    setSecond$(value: number): void;
    nanosecond(): number;
    setNanosecond$(value: number): void;
    weekday(): number;
    setWeekday$(value: number): void;
    weekdayOrdinal(): number;
    setWeekdayOrdinal$(value: number): void;
    quarter(): number;
    setQuarter$(value: number): void;
    weekOfMonth(): number;
    setWeekOfMonth$(value: number): void;
    weekOfYear(): number;
    setWeekOfYear$(value: number): void;
    yearForWeekOfYear(): number;
    setYearForWeekOfYear$(value: number): void;
    /** @deprecated Use -weekOfMonth or -weekOfYear, depending on which you mean */
    dayOfYear(): number;
    setDayOfYear$(value: number): void;
    /** @deprecated Use -weekOfMonth or -weekOfYear, depending on which you mean */
    leapMonth(): boolean;
    setLeapMonth$(value: boolean): void;
    /** @deprecated Use -weekOfMonth or -weekOfYear, depending on which you mean */
    repeatedDay(): boolean;
    setRepeatedDay$(value: boolean): void;
    /** @deprecated Use -weekOfMonth or -weekOfYear, depending on which you mean */
    date(): _NSDate | null;
    /**
     * Reports whether or not the combination of properties which have been set in the receiver is a date which exists in the calendar. This method is not appropriate for use on NSDateComponents objects which are specifying relative quantities of calendar components. Except for some trivial cases (e.g., 'seconds' should be 0 - 59 in any calendar), this method is not necessarily cheap. If the time zone property is set in the NSDateComponents object, it is used. The calendar property must be set, or NO is returned.
     */
    validDate(): boolean;
}
export interface _NSDateComponents extends _NSCopying, _NSSecureCoding {
}
