import * as react_jsx_runtime from 'react/jsx-runtime'; import { a as TimeCategoryType, b as TimeEntry } from '../types-ecK2b88Z.js'; import { C as CreateTimeEntryInput, T as TimeEntryFilter } from '../schemas-ZDVMEZ9A.js'; import * as _tanstack_react_query from '@tanstack/react-query'; import 'zod'; interface TimeEntryFormProps { projects: Array<{ id: string; name: string; }>; tasks?: Array<{ id: string; name: string; projectId: string; }>; categories?: Array<{ id: string; name: string; type: TimeCategoryType; }>; developerId: string; clientId: string; initialValue?: Partial; onSubmit?: (data: CreateTimeEntryInput) => void; onCancel?: () => void; onSuccess?: () => void; } declare function TimeEntryForm({ projects, tasks, categories, developerId, clientId, initialValue, onSubmit, onCancel, onSuccess, }: TimeEntryFormProps): react_jsx_runtime.JSX.Element; /** * Timer Component for tracking time */ interface TimerProps { projects: Array<{ id: string; name: string; }>; tasks?: Array<{ id: string; name: string; projectId: string; }>; categories?: Array<{ id: string; name: string; }>; onStart?: (data: TimerData) => void; onStop?: (data: TimerData & { duration: number; }) => void; isRunning?: boolean; elapsed?: number; lockedRanges?: Array<{ start: Date; end: Date; }>; } interface TimerData { projectId: string; taskId?: string; categoryId?: string; notes?: string; startedAt?: Date; } declare function Timer({ projects, tasks, categories, onStart, onStop, isRunning: externalIsRunning, elapsed: externalElapsed, lockedRanges, }: TimerProps): react_jsx_runtime.JSX.Element; interface WeeklyTimesheetGridProps { weekStart: Date; entries: TimeEntry[]; projects: Array<{ id: string; name: string; }>; onCellEdit?: (entryId: string, date: Date, minutes: number) => void; onSubmitWeek?: () => void; totals?: { daily: Record; weekly: number; billable: number; }; isEditable?: boolean; isSubmitted?: boolean; } declare function WeeklyTimesheetGrid({ weekStart, entries, projects, onCellEdit, onSubmitWeek, totals, isEditable, isSubmitted, }: WeeklyTimesheetGridProps): react_jsx_runtime.JSX.Element; /** * Filters Bar Component */ interface FiltersBarProps { projects?: Array<{ id: string; name: string; }>; developers?: Array<{ id: string; name: string; }>; categories?: Array<{ id: string; name: string; }>; onFiltersChange?: (filters: FilterValues) => void; initialFilters?: FilterValues; showBillableFilter?: boolean; showDateRange?: boolean; } interface FilterValues { projectIds?: string[]; developerIds?: string[]; categoryIds?: string[]; startDate?: string; endDate?: string; billable?: boolean | null; } declare function FiltersBar({ projects, developers, categories, onFiltersChange, initialFilters, showBillableFilter, showDateRange, }: FiltersBarProps): react_jsx_runtime.JSX.Element; /** * Project Time Chart Component */ interface ProjectTimeChartProps { data: Array<{ projectName: string; hours: number; billableHours: number; nonBillableHours: number; }>; height?: number; } declare function ProjectTimeChart({ data, height }: ProjectTimeChartProps): react_jsx_runtime.JSX.Element; /** * Developer Hours Chart Component */ interface DeveloperHoursChartProps { data: Array<{ developerName: string; hours: number; projects: Record; }>; height?: number; projectColors?: Record; } declare function DeveloperHoursChart({ data, height, projectColors }: DeveloperHoursChartProps): react_jsx_runtime.JSX.Element; interface TimeEntryResponse { data: TimeEntry[]; total: number; } /** * Fetch time entries with filters */ declare function useTimeEntries(filter?: Partial): _tanstack_react_query.UseQueryResult; /** * Create a new time entry */ declare function useCreateTimeEntry(): _tanstack_react_query.UseMutationResult; /** * Update an existing time entry */ declare function useUpdateTimeEntry(): _tanstack_react_query.UseMutationResult; /** * Delete a time entry */ declare function useDeleteTimeEntry(): _tanstack_react_query.UseMutationResult; /** * Submit time entries */ declare function useSubmitTimeEntries(): _tanstack_react_query.UseMutationResult; /** * CSV Export Hook */ interface ExportOptions { filename?: string; headers?: string[]; dateFormat?: string; } declare function useExportCSV(): { exportToCSV: (data: Record[], options?: ExportOptions) => void; }; export { DeveloperHoursChart, type FilterValues, FiltersBar, ProjectTimeChart, TimeEntryForm, Timer, WeeklyTimesheetGrid, useCreateTimeEntry, useDeleteTimeEntry, useExportCSV, useSubmitTimeEntries, useTimeEntries, useUpdateTimeEntry };