import { BillingImpactEnum, BillingReimbursementExpenseChangedStatusEnum, BillingStatusEnum, IBillingEntity, IBillingProfileEntity, IBillingTimesheetEntity, IEntityCreateDto, IProjectEntity, ITimesheetEntity, Nullable } from "../../entities"; import { IAppFileConfig } from "../../misc"; import { IBillingParticularLineItemCreateDto } from "./billing_particular_line_item.create.dto.interface"; export type IBillingCreateExclude = "paymentStatus" | "status" | "writeoffAmount" | "tdsAmount" | "totalAmountPaid" | "creditNoteAmount" | "refundAmount" | "invoicePdfUrl" | "startDate" | "endDate" | "invoiceNumber" | "draftInvoiceNumber"; export interface IBillingCreateDto extends Omit, IBillingCreateExclude | "particulars"> { timesheets?: IBillingTimesheetsDto; status?: BillingStatusEnum; reimbursementExpenses?: IBillingReimbursementExpenseCreateDtoDetails[]; particulars: IBillingParticulars; billingParticularLineItems?: IBillingParticularLineItemCreateDto[]; startDate?: string; endDate?: string; } export interface IBillingParticulars { invoiceDescription: string; includeOpeSummary: boolean; includePONumber: 0 | 1; includeGSTNumber: 0 | 1; poNumber: Nullable; name: string; showINRAmount?: boolean; inrTotalText?: string; } export interface IBillingCreateDtoExtra { particulars: IBillingParticulars[]; } export interface IBillingTimesheetUnchangedDto { id: number; amount?: number; } export interface IBillingTimesheetUpdateDeleteDetailDto { id: number; task: string; description: string; date: string; duration: number; amount?: number; impact: BillingImpactEnum; amendmentPurpose: string; } export interface IBillingTimesheetsDto { all: number[]; unchanged: IBillingTimesheetUnchangedDto[]; updateDetails: IBillingTimesheetUpdateDeleteDetailDto[]; deleteDetails: IBillingTimesheetUpdateDeleteDetailDto[]; } export interface IBillingCreateDtoValidationData { projectEntity: IProjectEntity; billingTimesheetEntities: IBillingTimesheetEntity[]; timesheetEntities: ITimesheetEntity[]; billingProfileEntity: IBillingProfileEntity; } export interface IBillingReimbursementExpenseCreateDtoDetails { userId: number; reimbursementExpenseId: number; projectId: number; expenseType: string; totalAmount: number; expenseIncurredDate: string; changedStatus: BillingReimbursementExpenseChangedStatusEnum; amendmentPurpose: string; } export declare const billingDocumentFileUploadConfig: IAppFileConfig[];