import type { DatetimePickerMode, InputTimeType, NavigationAction, WeekDayIndex } from './datetime-picker.types'; /** * Configuração de um campo de tempo usado pelos botões de navegação. */ export type TimeFieldConfig = { value: number; nextAction: NavigationAction; prevAction: NavigationAction; }; /** * Formata uma data para exibição no campo de entrada, conforme o modo do datetime-picker. * * @param {Date | null | undefined} date Data a ser formatada. * @param {DatetimePickerMode} mode Modo atual do componente. * @returns {string} String formatada ou vazia quando a data for inválida. */ export declare function formatDateForInput(date: Date | null | undefined, mode: DatetimePickerMode): string; /** * Retorna o dia do mês com zero à esquerda. * @param {Date} date Data para a qual o dia do mês será obtido * @returns {string} String representando o dia do mês com dois dígitos */ export declare function getDayWithLeadingZero(date: Date): string; /** * Retorna o rótulo do mês e ano para uma determinada data. * @param {Date} date Data para a qual o rótulo será obtido * @returns {string} Rótulo do mês e ano no formato "MMMM yyyy" */ export declare function getMonthYearLabel(date: Date): string; /** * Retorna o ícone correspondente a uma ação de navegação. * @param {NavigationAction} action Ação de navegação * @returns {string} Nome do ícone */ export declare function getIconForAction(action: NavigationAction): string; /** * Resolve o ícone do campo de entrada com base no modo atual. * @param {DatetimePickerMode} mode Modo do datetime-picker * @returns {string} Nome do ícone */ export declare function getInputIcon(mode: DatetimePickerMode): string; /** * Retorna as datas que serão exibidas na visualização do mês. * @param {Date} baseDate Data base para o mês * @param {WeekDayIndex} weekStartsOn Dia da semana em que a semana começa * @returns {Date[]} Array de datas para exibir no calendário */ export declare function getMonthViewDates(baseDate: Date, weekStartsOn: WeekDayIndex): Date[]; /** * Retorna os rótulos dos dias da semana, ajustados conforme o dia de início da semana. * @param {WeekDayIndex} weekStartsOn Dia da semana em que a semana começa * @param {string[]} weekdays Array com os nomes abreviados dos dias da semana * @returns {string[]} Array de rótulos dos dias da semana reordenados */ export declare function getWeekdayLabels(weekStartsOn: WeekDayIndex, weekdays: string[]): string[]; /** * Retorna o rótulo aria para um campo de tempo específico. * @param {InputTimeType} type Tipo de campo de tempo (hora ou minuto) * @returns {string} Rótulo aria correspondente ao campo de tempo */ export declare function getTimeFieldAriaLabel(type: InputTimeType): string; /** * Retorna a configuração do campo de tempo com base no tipo especificado. * * @param {InputTimeType} type Tipo de campo de tempo: hora ou minuto. * @param {Date} baseDate Data base usada para calcular os valores exibidos. * @returns {TimeFieldConfig} Objeto com o valor atual e as ações de navegação associadas. */ export declare function getTimeFieldConfig(type: InputTimeType, baseDate: Date): TimeFieldConfig; /** * Retorna o valor do campo de tempo formatado com dois dígitos. * @param {InputTimeType} type Tipo de campo de tempo (hora ou minuto) * @param {Date} baseDate Data base para obter os valores * @returns {string} Valor formatado do campo de tempo */ export declare function getTimeFieldValue(type: InputTimeType, baseDate: Date): string; /** * Retorna o rótulo ARIA para um botão de navegação específico. * * @param {NavigationAction} action Ação de navegação. * @param {Date} baseDate Data base usada para contextualizar o movimento. * @returns {string} Texto descritivo do comportamento do botão para leitores de tela. */ export declare function getNavigationAriaLabel(action: NavigationAction, baseDate: Date): string; /** * Analisa o valor de entrada de data e retorna um objeto Date ou null se inválido. * * @param {string} value Valor de entrada a ser analisado. * @param {Date} base Data base usada como referência para campos parcialmente preenchidos. * @returns {Date | null} Date válida ou null quando a entrada não puder ser convertida. */ export declare function parseDateInput(value: string, base: Date): Date | null; /** * Analisa o valor de entrada de tempo e retorna um objeto Date ou null se inválido. * * @param {string} value Valor de entrada a ser analisado. * @param {Date} base Data base usada para preservar os demais campos da data. * @returns {Date | null} Date válida ou null quando a entrada não puder ser convertida. */ export declare function parseTimeInput(value: string, base: Date): Date | null; /** * Analisa o valor de entrada de data e hora e retorna um objeto Date ou null se inválido. * * @param {string} value Valor de entrada a ser analisado. * @param {Date} base Data base usada em casos de entrada parcial. * @returns {Date | null} Date válida ou null quando a entrada não puder ser convertida. */ export declare function parseDateTimeInput(value: string, base: Date): Date | null; /** * Analisa o valor de entrada e retorna um objeto Date ou null se inválido. * @param value Valor de entrada a ser analisado * @param mode Modo do datetime-picker * @param fallbackBase Data base de fallback * @returns Objeto Date válido ou null se inválido */ export declare function parseInputValue(value: string, mode: DatetimePickerMode, fallbackBase: Date): Date | null;