import type { ListParams, Member } from './common';
export interface Absence {
    id: string;
    contractId: string;
    member?: Member;
    absenceTypeId: string;
    absenceType?: AbsenceType;
    startDateTime: string;
    endDateTime: string;
    fullDay?: boolean;
    totalDays?: string;
    totalHours?: string;
    reason?: string;
    documentationUrl?: string;
    fileName?: string;
    fileUri?: string;
    status?: string;
    requestedAt?: number;
    requestedBy?: string;
    requestedByMember?: Member;
    approvedBy?: string;
    approvedAt?: number;
    rejectionReason?: string;
    cancelledAt?: number;
    cancelledBy?: string;
    cancellationReason?: string;
    canApprove?: boolean;
    canReject?: boolean;
    canCancel?: boolean;
    canEdit?: boolean;
    documentationStatus?: string;
    documentationDueDate?: string;
    lastUpdate?: number;
    created?: number;
}
export interface AbsenceCreateRequest {
    contractId: string;
    absenceTypeId: string;
    startDateTime: string;
    endDateTime: string;
    fullDay?: boolean;
    reason?: string;
    documentationUrl?: string;
    fileName?: string;
    fileUri?: string;
}
export interface AbsenceUpdateRequest {
    startDateTime?: string;
    endDateTime?: string;
    fullDay?: boolean;
    reason?: string;
    documentationUrl?: string;
    fileName?: string;
    fileUri?: string;
}
export interface AbsenceReasonRequest {
    reason: string;
}
export interface AbsenceListParams extends ListParams {
    organizationId?: string;
    contractId?: string;
    userId?: string;
    absenceTypeId?: string;
    status?: string;
    startDate?: string;
    endDate?: string;
    year?: number;
    userIds?: string[];
    contractIds?: string[];
    statuses?: string[];
    teamId?: string;
    teamIds?: string[];
    excludeRejectedCancelled?: boolean;
}
export interface AbsenceType {
    id: string;
    organizationId: string;
    code: string;
    i18nKey?: string;
    name: string;
    descriptionI18nKey?: string;
    description?: string;
    color?: number;
    icon?: string;
    paid?: boolean;
    requiresApproval?: boolean;
    requiresDocumentation?: boolean;
    documentationRequiredAfterDays?: number;
    affectsOvertime?: boolean;
    deductsFromQuota?: boolean;
    maxConsecutiveDays?: number;
    minNoticeDays?: number;
    countryCode?: string;
    systemType?: boolean;
    active?: boolean;
    sortOrder?: number;
    lastUpdate?: number;
    created?: number;
}
export interface AbsenceTypeCreateRequest {
    code: string;
    name: string;
    description?: string;
    color?: number;
    icon?: string;
    paid?: boolean;
    requiresApproval?: boolean;
    requiresDocumentation?: boolean;
    documentationRequiredAfterDays?: number;
    affectsOvertime?: boolean;
    deductsFromQuota?: boolean;
    maxConsecutiveDays?: number;
    minNoticeDays?: number;
    countryCode?: string;
    sortOrder?: number;
}
export interface AbsenceTypeUpdateRequest {
    code?: string;
    name?: string;
    description?: string;
    color?: number;
    icon?: string;
    paid?: boolean;
    requiresApproval?: boolean;
    requiresDocumentation?: boolean;
    documentationRequiredAfterDays?: number;
    affectsOvertime?: boolean;
    deductsFromQuota?: boolean;
    maxConsecutiveDays?: number;
    minNoticeDays?: number;
    countryCode?: string;
    sortOrder?: number;
}
export interface AbsenceTypeListParams extends ListParams {
}
//# sourceMappingURL=Absence.d.ts.map