/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { IntlService } from '@progress/kendo-angular-intl';
import { Day } from '@progress/kendo-date-math';
import { RecurrenceService, Frequency } from './recurrence.service';
import { NumericTextBoxOptions } from '../../types/numeric-options.interface';
import { DatePickerOptions } from './../../types/datepicker-options.interface';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare const RECURRENCE_VALUE_ACCESSOR: any;
/**
 * Represents the Kendo UI Recurrence Editor component for Angular. Use this component to let users set recurrence rules for Scheduler events.
 *
 * [This example](https://www.telerik.com/kendo-angular-ui/components/scheduler/editing/custom-reactive-editing) demonstrates the Recurrence Editor, among other components.
 *
 * @example
 * ```html
 * <kendo-scheduler
 *   [kendoSchedulerBinding]="events"
 *   [kendoSchedulerReactiveEditing]="createFormGroup"
 * >
 *   <ng-template kendoSchedulerEditDialogTemplate let-formGroup="formGroup" let-event>
 *     <kendo-formfield>
 *       <kendo-recurrence-editor
 *         [start]="event.value.start"
 *         [formControl]="formGroup.get('recurrenceRule')"
 *       ></kendo-recurrence-editor>
 *     </kendo-formfield>
 *   </ng-template>
 * </kendo-scheduler>
 * ```
 */
export declare class RecurrenceEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private recurrenceService;
    private intl;
    cssClass: boolean;
    /**
     * Sets the start date for the event.
     */
    set start(value: Date);
    get start(): Date;
    /**
     * Sets the id of the timezone to use.
     *
     * @default 'Etc/UTC'
     */
    timezone: string;
    /**
     * Sets the first day of the week. Uses the locale settings by default.
     */
    weekStart: Day;
    /**
     * Sets the options for the **Repeat Every** NumericTextBox in the recurrence `interval` editor.
     */
    repeatEveryOptions: NumericTextBoxOptions;
    /**
     * Sets the options for the **End After** NumericTextBox in the recurrence `count` rule editor.
     */
    endAfterOptions: NumericTextBoxOptions;
    /**
     * Sets the options for the **Repeat On** NumericTextBox for choosing the day an event occurs in the monthly and yearly sections.
     */
    repeatOnOptions: NumericTextBoxOptions;
    /**
     * Sets the options for the **End On** DatePicker in the recurrence `until` rule editor.
     */
    endOnOptions: DatePickerOptions;
    /**
     * Fires when the value of the component changes.
     */
    valueChange: EventEmitter<string>;
    private _start;
    private subscriptions;
    constructor(recurrenceService: RecurrenceService, intl: IntlService);
    /**
     * @hidden
     */
    get currentFreq(): Frequency;
    /**
     * @hidden
     */
    ngOnInit(): void;
    ngOnChanges(changes: any): void;
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    writeValue(rrule: any): void;
    protected onTouchedCallback: Function;
    protected onChangeCallback: Function;
    /**
     * @hidden
     */
    registerOnChange(fn: any): void;
    /**
     * @hidden
     */
    registerOnTouched(fn: any): void;
    private emitChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<RecurrenceEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RecurrenceEditorComponent, "kendo-recurrence-editor", ["kendoRecurrenceEditor"], { "start": { "alias": "start"; "required": false; }; "timezone": { "alias": "timezone"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "repeatEveryOptions": { "alias": "repeatEveryOptions"; "required": false; }; "endAfterOptions": { "alias": "endAfterOptions"; "required": false; }; "repeatOnOptions": { "alias": "repeatOnOptions"; "required": false; }; "endOnOptions": { "alias": "endOnOptions"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
