import { TemplateRef } from '@angular/core';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
import { EuiCalendarDay, EuiCalendarEvent } from './models';
import * as i0 from "@angular/core";
export declare class EuiCalendarWeeklyComponent {
    /**
     * Whether drag-and-drop is enabled for events (defaults to true)
     */
    dragAndDrop: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * The reference date for the week. The component will display the week that contains this date.
     * For example, if date is Friday 07/01 and startingDay is Monday, it will show the week from 03/01 to 09/01.
     */
    date: import("@angular/core").ModelSignal<Date>;
    /**
     * Events for the week. Each event should have a date property.
     * The date property should be a Date object.
     * Other properties can be added as needed.
     */
    events: import("@angular/core").ModelSignal<EuiCalendarEvent[]>;
    /**
     * Whether to show weekends in the calendar (defaults to true)
     */
    showWeekends: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * Starting day of the week (0=Monday, 1=Tuesday, ..., 6=Sunday or 'monday', 'tue', 'wed', etc.)
     */
    startingDay: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
    /**
     * Emits when an event is moved to a different day
     */
    eventMoved: import("@angular/core").OutputEmitterRef<{
        event: EuiCalendarEvent;
        newDate: Date;
    }>;
    /**
     * Optional custom template for day headers
     * The template will receive the day object as $implicit in the context
     */
    dayHeaderTemplate: import("@angular/core").InputSignal<TemplateRef<EuiCalendarDay>>;
    /**
     * Optional custom template for event content
     * The template will receive the event object as $implicit in the context
     */
    eventContentTemplate: import("@angular/core").InputSignal<TemplateRef<any>>;
    daysInWeek: import("@angular/core").Signal<EuiCalendarDay[]>;
    /**
     * Emits when a day header action is triggered
     */
    dayAction: import("@angular/core").OutputEmitterRef<{
        $event: MouseEvent | KeyboardEvent;
        day: EuiCalendarDay;
    }>;
    /**
     * Unique component ID for drag-and-drop context
     */
    protected id: `${string}-${string}-${string}-${string}-${string}`;
    /**
     * Computed signal that generates IDs for all drop lists to enable drag-and-drop between days
     */
    dropListIds: import("@angular/core").Signal<string[]>;
    /**
     * Map day names to enum values for flexible input
     * @type {Object.<string, number>}
     */
    private DayNameMap;
    /**
     * Handles drop event when an event is moved between days
     * @param dropEvent The CDK drag-drop event
     */
    drop(dropEvent: CdkDragDrop<EuiCalendarDay>): void;
    /**
     * Calculates the start date of the week that contains the given reference date.
     * The week always includes the reference date and starts on the specified startingDay.
     * For example:
     * - If date is Monday 20/10/2025 and startingDay is Tuesday (1), returns Tuesday 14/10/2025
     * - If date is Thursday 23/10/2025 and startingDay is Tuesday (1), returns Tuesday 21/10/2025
     * @param referenceDate The date within the week (must be included in the week)
     * @param startingDay The day the week starts on (0=Monday, 1=Tuesday, ..., 6=Sunday)
     * @returns The date of the first day of the week
     * @private
     */
    private getWeekStartDate;
    /**
     * Normalizes the starting day input to a DayOfWeek enum value
     * @param {string|number} startingDay - Day name, abbreviation, or number
     * @returns {number} Normalized day index (0-6)
     * @throws {Error} If the starting day is invalid
     */
    private startingDayTransformer;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiCalendarWeeklyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiCalendarWeeklyComponent, "eui-calendar-weekly", never, { "dragAndDrop": { "alias": "dragAndDrop"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "events": { "alias": "events"; "required": false; "isSignal": true; }; "showWeekends": { "alias": "showWeekends"; "required": false; "isSignal": true; }; "startingDay": { "alias": "startingDay"; "required": false; "isSignal": true; }; "dayHeaderTemplate": { "alias": "dayHeaderTemplate"; "required": false; "isSignal": true; }; "eventContentTemplate": { "alias": "eventContentTemplate"; "required": false; "isSignal": true; }; }, { "date": "dateChange"; "events": "eventsChange"; "eventMoved": "eventMoved"; "dayAction": "dayAction"; }, never, never, true, never>;
}
//# sourceMappingURL=eui-calendar-weekly.component.d.ts.map