import { Dayjs } from "dayjs"; import { AllowedKeys } from "../DateField/constants"; import type { Sections } from "../DateField/types"; /** * 指定した間隔で時刻オプションを生成する * @param interval 間隔(分) * @returns 時刻文字列の配列 ["00:00", "00:15", ...] */ export declare const generateTimeOptions: (interval?: number) => string[]; /** * 左右キーでセクションを移動する際の移動量を計算する * @param currentIndex 現在のセクションインデックス * @param direction 移動方向 ("ArrowLeft" | "ArrowRight") * @param sections セクション配列 * @returns 移動量(差分) */ export declare const calculateSectionIndexDelta: (currentIndex: number, direction: typeof AllowedKeys.ArrowLeft | typeof AllowedKeys.ArrowRight, sections: Sections[]) => number; /** * 上下キーで時刻を増減する * @param currentTime 現在の時刻 * @param sectionIndex 現在のセクションインデックス(HH:mm形式の場合、0=時、2=分) * @param increment 増減量(1または-1) * @param format 時刻フォーマット(例: "HH:mm") * @returns 増減後の時刻と正規化された値 */ export declare const calculateIncrementedTime: (currentTime: Dayjs, sectionIndex: number, increment: number, format: string) => { newTime: Dayjs; normalizedValue: string; } | null; /** * 数字入力処理の結果 */ export type NumericInputResult = { newSections: Sections[]; shouldMoveToNextSection: boolean; newLastEditedSection: number | null; }; /** * 数字キーで値を直接入力する処理 * @param inputNumber 入力された数字文字列 * @param sections 現在のセクション配列 * @param sectionIndex 現在のセクションインデックス * @param lastEditedSection 最後に編集したセクションのインデックス * @returns 新しいセクション配列、次のセクションへの移動フラグ、新しい編集履歴 */ export declare const processNumericInput: (inputNumber: string, sections: Sections[], sectionIndex: number, lastEditedSection: number | null) => NumericInputResult; /** * Backspaceキーで値をクリアする処理 * @param sections 現在のセクション配列 * @param sectionIndex 現在のセクションインデックス * @returns 新しいセクション配列 */ export declare const processBackspaceInput: (sections: Sections[], sectionIndex: number) => Sections[];