import { ZonedDateTime } from '@js-joda/core';
import { DateAdapter, DateAdapterBase, DateTime } from '@rschedule/core';
/**
 * The `JodaDateAdapter` is a DateAdapter for "@js-joda/core" `ZonedDateTime`
 * objects.
 *
 * It supports timezone handling in so far as js-joda supports
 * timezone handling. That is, it only supports the SYSTEM and UTC
 * time zones unless you have loaded the optional @js-joda/timezone
 * package.
 */
export declare class JodaDateAdapter extends DateAdapterBase {
  static readonly date: ZonedDateTime;
  static readonly hasTimezoneSupport = true;
  /**
   * Checks if object is an instance of `ZonedDateTime`
   */
  static isDate(object: any): object is ZonedDateTime;
  static fromDate(
    date: ZonedDateTime,
    options?: {
      duration?: number;
    },
  ): JodaDateAdapter;
  static fromJSON(json: DateAdapter.JSON): JodaDateAdapter;
  static fromDateTime(datetime: DateTime): JodaDateAdapter;
  readonly date: ZonedDateTime;
  readonly timezone: string | null;
  private _end;
  constructor(
    date: ZonedDateTime,
    options?: {
      duration?: number;
      generators?: ReadonlyArray<unknown>;
      metadata?: DateAdapterBase['metadata'];
    },
  );
  get end(): ZonedDateTime | undefined;
  set(prop: 'timezone', value: string | null): this;
  set(prop: 'duration', value: number): this;
  valueOf(): number;
  toJSON(): DateAdapter.JSON;
  assertIsValid(): true;
}
