/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter } from "@angular/core";
import { RecurrenceRule } from '@progress/kendo-recurrence';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { IntlService } from '@progress/kendo-angular-intl';
import * as i0 from "@angular/core";
/**
 * @hidden
 *
 */
export interface WeekDayRule {
    day: number;
    offset: number;
}
/**
 * @hidden
 */
export type EndRule = 'count' | 'never' | 'until';
/**
 * @hidden
 */
export type RepeatOnRule = 'monthday' | 'weekday';
/**
 * @hidden
 */
export type Frequency = 'never' | 'daily' | 'weekly' | 'monthly' | 'yearly';
/**
 * @hidden
 */
export type OffsetPosition = 'first' | 'second' | 'third' | 'fourth' | 'last';
/**
 * @hidden
 */
export interface FrequencyEntity {
    text: string;
    value: Frequency;
}
/**
 * @hidden
 */
export interface WeekDayEntity {
    text: string;
    value: number | string;
}
/**
 * @hidden
 */
export interface MonthEntity {
    text: string;
    value: number;
}
/**
 * @hidden
 */
export interface OffsetPositionEntity {
    text: string;
    value: number;
}
/**
 * @hidden
 */
export declare const dayRule: Array<WeekDayRule>;
/**
 * @hidden
 */
export declare const weekdayRule: Array<WeekDayRule>;
/**
 * @hidden
 */
export declare const weekendRule: Array<WeekDayRule>;
/**
 * @hidden
 *
 * The internal service for handling changes in the RecurrenceEditor component.
 */
export declare class RecurrenceService {
    private intl;
    private localization;
    rrule: RecurrenceRule;
    timezone: string;
    weekStart: number;
    start: Date;
    change: EventEmitter<string>;
    endRuleChange: EventEmitter<string>;
    frequencyChange: EventEmitter<any>;
    repeatOnRuleChange: EventEmitter<RepeatOnRule>;
    constructor(intl: IntlService, localization: LocalizationService);
    init(rrule: string, start: Date, timezone: string, weekStart: number): void;
    /**
     * @hidden
     */
    getUniqueId(): number;
    get frequencies(): Array<FrequencyEntity>;
    get frequency(): string;
    setFrequency(freq: Frequency): void;
    set interval(newInterval: number);
    set count(newCount: number);
    set until(newUntil: Date);
    get until(): Date;
    setWeekDays(newWeekDays: Array<WeekDayRule>): void;
    set monthDays(newMonthDays: Array<number>);
    set positions(newPositions: Array<number>);
    setMonths(newMonths: Array<number>): void;
    get months(): Array<MonthEntity>;
    get weekDays(): Array<WeekDayEntity>;
    get extendedWeekDays(): Array<WeekDayEntity>;
    get offsetPositions(): Array<OffsetPositionEntity>;
    get endRule(): EndRule;
    set endRule(endRule: EndRule);
    get repeatOnRule(): RepeatOnRule;
    set repeatOnRule(repeatOnRule: RepeatOnRule);
    onChange(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RecurrenceService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RecurrenceService>;
}
