import type { DateTime } from '@gravity-ui/date-utils'; import type { ExtractFunctionType } from "../types/index.js"; import { i18n } from "./i18n/index.js"; import type { AvailableSections, DateFieldSection, DateFieldSectionType, DateFieldSectionWithoutPosition, FormatInfo } from "./types.js"; export declare const EDITABLE_SEGMENTS: AvailableSections; export declare function getSectionLimits(section: DateFieldSectionWithoutPosition, date: DateTime): { minValue: number; maxValue: number; } | { minValue?: undefined; maxValue?: undefined; }; export declare function getSectionValue(section: DateFieldSectionWithoutPosition, date: DateTime): number | undefined; export declare function getDurationUnitFromSectionType(type: DateFieldSectionType): "year" | "month" | "day" | "hour" | "minute" | "second" | "quarter" | "date"; export declare function addSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime; export declare function setSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime; type TranslateFunction = ExtractFunctionType; export declare function splitFormatIntoSections(format: string, t?: TranslateFunction, lang?: string): DateFieldSectionWithoutPosition[]; export declare function cleanString(dirtyString: string): string; export declare function getEditableSections(sections: DateFieldSectionWithoutPosition[], value: DateTime, validSegments: AvailableSections): DateFieldSection[]; export declare function isEditableSection(section: DateFieldSectionWithoutPosition): boolean; export declare function toEditableSection(section: DateFieldSectionWithoutPosition, value: DateTime, validSegments: AvailableSections, position: number, previousEditableSection: number): DateFieldSection; export declare function getCurrentEditableSectionIndex(sections: DateFieldSection[], selectedSections: 'all' | number): number; export declare function formatSections(sections: DateFieldSection[]): string; export declare function parseDateFromString(str: string, format: string, timeZone?: string): DateTime; export declare function isAllSegmentsValid(allSegments: AvailableSections, validSegments: AvailableSections): boolean; export declare function useFormatSections(format: string): DateFieldSectionWithoutPosition[]; export declare function getFormatInfo(sections: DateFieldSectionWithoutPosition[]): FormatInfo; export declare function adjustDateToFormat(date: DateTime, formatInfo: FormatInfo, method?: 'startOf' | 'endOf'): DateTime; export declare function markValidSection(allSections: AvailableSections, editableSections: AvailableSections, unit: DateFieldSectionType): { year?: boolean | undefined; month?: boolean | undefined; day?: boolean | undefined; hour?: boolean | undefined; minute?: boolean | undefined; second?: boolean | undefined; quarter?: boolean | undefined; weekday?: boolean | undefined; dayPeriod?: boolean | undefined; literal?: boolean | undefined; timeZoneName?: boolean | undefined; unknown?: boolean | undefined; }; export {};