import { MouseEvent } from 'react'; import { MonthCellsProps } from '../types/internal-interface'; import { ResourceLevel } from '../services/ResourceGroupingService'; /** * Interface for month work cell data * * @private */ export interface MonthCell { /** * The date for this cell */ date: Date; /** * CSS class names for the cell */ className: string; /** * Date timestamp for data attribute */ dateTimestamp: number; /** * Formatted date display string */ displayText: string; /** * Unique key for React rendering */ key: string; /** * Cell style used for calculating the width of month cells */ cellStyle?: React.CSSProperties; /** * Resource information for this cell (grouped rendering mode only) * Only populated when resource grouping is enabled */ resource?: ResourceLevel; /** * GroupIndex for data-group-index attribute * Represents the resource's position in the group sequence * For byDate=false: same groupIndex across all dates for a resource * For byDate=true: cycles through innermost resource count per date */ groupIndex?: number; } /** * Interface for resource-specific month cells * * @private */ export interface ResourceMonthCells { /** * The resource this set of cells belongs to */ resource: ResourceLevel; /** * Month cells for this resource */ cells: MonthCell[]; } /** * Interface for month work cells hook result * Supports both grouped (with resources) and non-grouped rendering modes * * @private */ export interface MonthCellsResult { /** * Processed data for non-grouped work cells. */ workCells?: MonthCell[]; /** * Resources with their associated cells for grouped mode (byDate=false). */ resourceCells?: ResourceMonthCells[]; /** * Cells organized by date then resource for grouped mode (byDate=true). */ resourceByDateCells?: MonthCell[]; /** * Handle more click for more event creation */ handleMoreClick: (e: MouseEvent, startDate: Date, resource?: ResourceLevel, endDate?: Date) => void; } /** * Custom hook for month work cells logic * Supports both grouped (with resources) and non-grouped rendering modes * * @param {MonthCellsProps} props - The props for month cells * @returns {MonthCellsResult} Month cells data and functions * @private */ export declare function useMonthCells(props: MonthCellsProps): MonthCellsResult;