export interface Employee { id?: string; employeeNumber?: string; eeid?: string; firstName: string; lastName: string; displayName?: string; preferredName?: string; email?: string; workEmail?: string; personalEmail?: string; department?: string; division?: string; jobTitle?: string; location?: string; city?: string; state?: string; country?: string; zipCode?: string; workPhone?: string; mobilePhone?: string; homePhone?: string; hireDate?: string; terminationDate?: string | null; status?: string; supervisorId?: string; supervisorEId?: string; supervisor?: string; photoUrl?: string; gender?: string; dateOfBirth?: string; ssn?: string; maritalStatus?: string; customFields?: Record; } export interface TimeOffRequest { id: string; employeeId: string; status: TimeOffStatus; name: string; start: string; end: string; created: string; type: TimeOffType; amount: TimeOffAmount; notes?: { employee?: string; manager?: string; }; dates?: Record; comments?: TimeOffComment[]; } export interface TimeOffType { id: string; name: string; icon?: string; } export interface TimeOffAmount { unit: 'days' | 'hours'; amount: number; } export interface TimeOffComment { employeeId: string; name: string; email: string; comment: string; commentDate: string; } export type TimeOffStatus = 'requested' | 'approved' | 'denied' | 'superceded' | 'canceled' | 'pending'; export interface TimeOffBalance { employeeId: string; timeOffTypeId: string; timeOffTypeName: string; balance: number; usedYearToDate: number; reserved: number; available: number; } export interface ApiResponse { data?: T; success?: boolean; error?: { code?: string; message: string; }; } export interface PaginatedResponse { items: T[]; pagination?: { page: number; limit: number; total: number; totalPages: number; }; } export interface CreateEmployeeParams { firstName: string; lastName: string; email?: string; workEmail?: string; department?: string; jobTitle?: string; hireDate?: string; supervisorId?: string; location?: string; workPhone?: string; gender?: string; dateOfBirth?: string; ssn?: string; maritalStatus?: string; city?: string; state?: string; country?: string; employeeNumber?: string; customFields?: Record; } export interface UpdateEmployeeParams { firstName?: string; lastName?: string; email?: string; workEmail?: string; department?: string; jobTitle?: string; location?: string; workPhone?: string; status?: string; gender?: string; dateOfBirth?: string; ssn?: string; maritalStatus?: string; city?: string; state?: string; country?: string; supervisorId?: string; customFields?: Record; } export interface CreateTimeOffRequestParams { employeeId: string; start: string; end: string; timeOffTypeId: string; amount: number; unit: 'days' | 'hours'; notes?: string; previousRequest?: string; } export interface UpdateTimeOffRequestParams { status: TimeOffStatus; note?: string; } //# sourceMappingURL=bamboohr.d.ts.map