import { Subject } from 'rxjs';
import { RtlService } from '@fundamental-ngx/cdk/utils';
import { EscapeFocusFunction } from './models/common';
import * as i0 from "@angular/core";
export declare class CalendarService {
    private _rtlService;
    /** Row amount */
    rowAmount: number;
    /** Column amount */
    colAmount: number;
    /** Event thrown, when the element is selected by space or enter keys */
    onKeySelect: Subject<{
        index: number;
        event: KeyboardEvent;
    }>;
    /** Event thrown, when the focus goes after list of elements */
    onListEndApproach: Subject<number>;
    /** Event thrown, when the focus goes before list of elements */
    onListStartApproach: Subject<number>;
    /** Event thrown, when the focus is changed. */
    onFocusIdChange: Subject<number>;
    /** Left Arrow Id, which will be focused by default on focus escape */
    leftArrowId: string;
    /** Function that is called when the focus would escape the element. */
    focusEscapeFunction: EscapeFocusFunction;
    /** @hidden */
    constructor(_rtlService: RtlService);
    /**
     * Standardized method to calculate grid [x][y] to index number
     */
    getId(row: number, col: number): number;
    /**
     * Method that handles keydown events, dedicated for All Calendar views, which have a list with row x col elements.
     * Triggers the events, when the focus approaches start and end of list. Or when there is basic change of focus.
     * Triggers also event, when the element is selected by enter key, or space bar.
     * @param event KeyboardEvent
     * @param index which is number (0 - (rowAmount * colAmount))
     */
    onKeydownHandler(event: KeyboardEvent, index: number): void;
    /**
     * @hidden
     * Right Element focus trigger
     */
    focusRightElement(index: number): void;
    /**
     * @hidden
     * Left Element focus trigger
     */
    focusLeftElement(index: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CalendarService>;
}
