import type { WatchListCallable } from '../../../../../../primitives/reactive/watchlist';
import { CalendarDayOfWeekData, FirstWeekDay, IndexedCalendarBlock, Time, TimeFrameBlock, TimeFrameCursor, TimeFrameSelection, TimeFrameShift, TimeFrameSize, TimeSlice } from '../../types';
export default abstract class TimeFrame {
    #private;
    protected daysInWeek: number;
    protected origin: number;
    protected originTimestamp: number;
    protected abstract getCursorBlockOriginTimestampOffset(timestamp: number): number;
    protected abstract getDayOfWeekAtIndex(index: number): CalendarDayOfWeekData;
    protected abstract getEdgeBlockOffsetsFromOrigin(): [number, number];
    protected abstract getFormattedDataForBlockCell(time: Time): [string, string];
    protected abstract getFormattedDataForFrameBlock(time: Time): [string, string];
    protected abstract getFrameBlockAtIndex(index: number): TimeFrameBlock;
    protected abstract getUnitsForFrameBlockAtIndex(index: number): number;
    protected abstract getUnitsOffsetForTimestamp(startTimestamp: number, timestamp: number): number;
    protected abstract reoriginate(): void;
    protected abstract reslice(): void;
    protected abstract shiftOrigin(offset: number): void;
    abstract getTimestampAtIndex(indexOffset: number): number;
    abstract withCurrentDayTimestamp(): void;
    abstract get currentDayTimestamp(): number;
    abstract get rowspan(): number;
    protected get fromTimestamp(): number;
    protected get toTimestamp(): number;
    protected get numberOfBlocks(): number;
    get blankSelection(): boolean;
    get cursor(): number;
    get daysOfWeek(): import("../../../../../../primitives/auxiliary/indexed").Indexed<Readonly<{
        flags: import("../../types").CalendarFlagsRecord;
        labels: Readonly<{ [K in import("../../types").DayOfWeekLabelFormat]: string; }>;
    }>> & object;
    get dynamicBlockHeight(): boolean;
    set dynamicBlockHeight(bool: boolean | null | undefined);
    set effect(effect: WatchListCallable | null | undefined);
    get firstWeekDay(): FirstWeekDay;
    set firstWeekDay(day: FirstWeekDay | null | undefined);
    get frameBlocks(): import("../../../../../../primitives/auxiliary/indexed").Indexed<IndexedCalendarBlock | undefined> & object;
    get isAtEnd(): boolean;
    get isAtStart(): boolean;
    get locale(): string;
    set locale(locale: string | Intl.Locale | null | undefined);
    get selectionStart(): number | undefined;
    get selectionEnd(): number | undefined;
    get size(): TimeFrameSize;
    set size(size: TimeFrameSize | null | undefined);
    get timeslice(): TimeSlice;
    set timeslice(timeslice: TimeSlice | null | undefined);
    get timezone(): string;
    set timezone(timezone: string | null | undefined);
    set trackCurrentDay(bool: boolean | null | undefined);
    get units(): number;
    protected initialize(): void;
    protected refreshFrame(skipCursorRefresh?: boolean): void;
    shiftFrameByOffset(offset?: number, offsetType?: TimeFrameShift): void;
    shiftFrameCursor(nextCursorPosition: TimeFrameCursor | number): void;
    shiftFrameToTimestamp(timestamp?: number): void;
    clearSelection(): void;
    updateSelection(time: Time, selection?: TimeFrameSelection): void;
}
//# sourceMappingURL=TimeFrame.d.ts.map