/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { TemplateRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { OngoingEventsSettings, SchedulerView } from '../../types';
import { EventTemplateDirective, GroupHeaderTemplateDirective } from '../templates';
import { Subscription } from 'rxjs';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { ViewContextService } from '../view-context.service';
import { ViewStateService } from '../view-state.service';
import { SlotClassArgs } from '../../types';
import { EventStyleArgs } from '../../types';
import { Day } from '@progress/kendo-date-math';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare abstract class ConfigurationViewBase extends SchedulerView implements OnDestroy {
    protected localization: LocalizationService;
    protected changeDetector: ChangeDetectorRef;
    protected viewContext: ViewContextService;
    protected viewState: ViewStateService;
    /**
     * Specifies the days that will be hidden from the view.
     * Accepts an array of `Day` enum values.
    **/
    set hiddenDays(_hiddenDays: Day[]);
    get hiddenDays(): Day[];
    /**
     * Defines a function that is executed for every slot in the view.
     * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](https://www.telerik.com/kendo-angular-ui/components/scheduler/styling#slot-styling).
     */
    slotClass: (args: SlotClassArgs) => any;
    /**
     * Defines a function that is executed for every event in the view.
     * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
     */
    eventClass: (args: EventStyleArgs) => any;
    /**
     * Defines a function that is executed for every event in the view.
     * The function returns a value which is supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']).
     */
    eventStyles: (args: EventStyleArgs) => any;
    /**
     * Specifies the settings for the ongoing events highlight of the Scheduler.
     */
    highlightOngoingEvents: boolean | OngoingEventsSettings;
    /**
     * Specifies whether to display the toolbar of the Scheduler.
     */
    get showToolbar(): boolean;
    set showToolbar(value: boolean);
    /**
     * @hidden
     */
    template: TemplateRef<any>;
    /**
     * @hidden
     */
    eventTemplate: EventTemplateDirective;
    /**
     * @hidden
     */
    groupHeaderTemplate: GroupHeaderTemplateDirective;
    /**
     * @hidden
     */
    get viewSlotClass(): (args: any) => any;
    /**
     * @hidden
     */
    get viewEventClass(): any;
    /**
     * @hidden
     */
    get viewEventStyles(): any;
    /**
     * @hidden
     */
    get viewHighlightOngoingEvents(): any;
    /**
     * @hidden
     */
    get viewWeekStart(): any;
    /**
     * @hidden
     */
    get viewHiddenDays(): Day[];
    protected subs: Subscription;
    protected schedulerOptions: any;
    protected _hiddenDays: Day[];
    constructor(localization: LocalizationService, changeDetector: ChangeDetectorRef, viewContext: ViewContextService, viewState: ViewStateService);
    ngOnChanges(changes: any): void;
    ngOnDestroy(): void;
    protected optionsChange(options: any): void;
    private _showToolbar;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationViewBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ConfigurationViewBase, never, never, { "hiddenDays": { "alias": "hiddenDays"; "required": false; }; "slotClass": { "alias": "slotClass"; "required": false; }; "eventClass": { "alias": "eventClass"; "required": false; }; "eventStyles": { "alias": "eventStyles"; "required": false; }; "highlightOngoingEvents": { "alias": "highlightOngoingEvents"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; }, {}, ["eventTemplate", "groupHeaderTemplate"], never, true, never>;
}
