/**
 * @interface TimeSlot
 * @description Represents a single time slot with a start and end time.
 * @property {string} from - The start time of the slot (e.g., "09:00").
 * @property {string} to - The end time of the slot (e.g., "17:00").
 * @property {string | null} [error] - An optional error message for the time slot.
 */
export interface TimeSlot {
    from: string;
    to: string;
    error?: string | null;
}
/**
 * @interface DaySchedule
 * @description Represents the schedule for a single day, including its open status and time slots.
 * @property {boolean} isOpen - Whether the schedule for this day is active.
 * @property {TimeSlot[]} timeSlots - An array of time slots for the day.
 */
export interface DaySchedule {
    isOpen: boolean;
    timeSlots: TimeSlot[];
}
/**
 * @interface ScheduleRowTranslations
 * @description Translation strings for the ScheduleRow component.
 * Supports internationalization (i18n) without imposing any specific system.
 * @property {string} from - Label for the "from" time field (default: "Desde").
 * @property {string} to - Label for the "to" time field (default: "Hasta").
 * @property {string} open - Label for the open status chip (default: "Abierto").
 * @property {string} closed - Label for the closed status chip (default: "Cerrado").
 * @property {string} copyToAll - Label for the copy to all button (default: "Copiar a todos").
 * @property {string} addTimeSlot - Label for the add time slot button (default: "Agregar horario").
 */
export interface ScheduleRowTranslations {
    /**
     * Label for the "from" time input field
     */
    from: string;
    /**
     * Label for the "to" time input field
     */
    to: string;
    /**
     * Label displayed when the day is open/active
     */
    open: string;
    /**
     * Label displayed when the day is closed/inactive
     */
    closed: string;
    /**
     * Label for the button that copies the current schedule to all other days
     */
    copyToAll: string;
    /**
     * Label for the button that adds a new time slot
     */
    addTimeSlot: string;
}
/**
 * @interface ScheduleRowProps
 * @description Props for the ScheduleRow component.
 */
export type ScheduleRowProps = {
    /**
     * @property {string} day - The day of the week for this schedule row (e.g., "Monday").
     */
    day: string;
    /**
     * @property {DaySchedule} daySchedule - The initial schedule data for the day.
     */
    daySchedule: DaySchedule;
    /**
     * @property {Partial<ScheduleRowTranslations>} [translations] - An object containing translated strings for the component.
     * Allows full internationalization support. If not provided, uses default Spanish translations.
     */
    translations?: Partial<ScheduleRowTranslations>;
    /**
     * @property {boolean} [showCopyToAll=false] - Controls the visibility of the "Copy to all" button.
     * When true, displays the button that allows copying the schedule to all days.
     * When false or undefined, the button is hidden.
     */
    showCopyToAll?: boolean;
    /**
     * @function onChange
     * @description Callback function that is invoked when the schedule is modified.
     * @param {DaySchedule} newSchedule - The updated schedule object.
     * @returns {void}
     */
    onChange: (newSchedule: DaySchedule) => void;
    /**
     * @function onCopyToAll
     * @description Callback function that is invoked when the "Copy to all" button is clicked.
     * Only called when showCopyToAll is true.
     * @param {string} day - The day of the week to copy from.
     * @returns {void}
     */
    onCopyToAll?: (day: string) => void;
};
//# sourceMappingURL=schedule-row.types.d.ts.map