import { BaseEntity } from "./base.entity";
import { Job } from "./job.entity";
import { User } from "./user.entity";
import { EscrowWallet } from "./escrow-wallet.entity";
import { ContractSummary } from "./contract-summary.entity";
export declare enum ContractStatusEnum {
    GENERATED = "GENERATED",
    DRAFTED = "DRAFTED",
    SENT = "SENT",
    SIGNED = "SIGNED",
    ACTIVE = "ACTIVE",
    CANCELLED = "CANCELLED",
    DISPUTED = "DISPUTED",
    REJECTED = "REJECTED",
    RENEWED = "RENEWED",
    EXPIRED = "EXPIRED",
    CLOSED = "CLOSED"
}
export declare enum ContractTypeEnum {
    NDA = "NDA",
    WORK = "WORK",
    SOW = "SOW",
    MSA = "MSA",
    CL_SOW = "CL_SOW",
    FL_SOW = "FL_SOW"
}
export declare class Contract extends BaseEntity {
    contractUniqueId: string;
    contractSummaryId: number;
    contractSummary: ContractSummary;
    jobId: number;
    job: Job;
    clientId: number;
    client: User;
    freelancerId: number;
    freelancer: User;
    duration: number;
    status: ContractStatusEnum;
    type: ContractTypeEnum;
    invoicingCycle: string;
    escrowDepositeAmount: number;
    startDate: Date;
    endDate: Date;
    actualStartDate: Date;
    actualEndDate: Date;
    originalDocumentUrl: string;
    contractDocumentUrl: string;
    clientSignedAt: Date;
    freelancerViewed: boolean;
    freelancerViewedAt: Date;
    freelancerSignedAt: Date;
    rejectedAt: Date;
    rejectReason: string;
    resendCount: number;
    isWorkContractSent: boolean;
    isEscrowDeposited: boolean;
    signaturePositions: any;
    signatureUrl: string;
    metaData: any;
    escrowWallet: EscrowWallet;
}
