import { BillingType, Employee, Project, ProjectInternalStatus, QaResult, Task, TaskAssignment, TaskStage } from '@prisma/client';
type TaskRow = Task & {
    assignments?: TaskAssignment[];
    assignee?: Pick<Employee, 'id' | 'name' | 'code' | 'avatarColor'> | null;
    project?: (Pick<Project, 'id' | 'code' | 'name' | 'color' | 'clientId'> & {
        client?: {
            id: string;
            code: string;
            name: string;
        } | null;
    }) | null;
    internalStatus?: Pick<ProjectInternalStatus, 'id' | 'text' | 'color' | 'stage'> | null;
    _count?: {
        subtasks?: number;
        bugs?: number;
        notes?: number;
    };
};
export declare function serializeTask(t: TaskRow): {
    id: string;
    code: string;
    title: string;
    projectId: string;
    project: {
        id: string;
        code: string;
        name: string;
        color: string;
        clientId: string | null;
        client: {
            id: string;
            code: string;
            name: string;
        } | null;
    } | undefined;
    description: string;
    acceptanceCriteria: string;
    stage: "Done" | "Inbox" | "In Progress" | "Code Review & QA";
    lifecycle: import(".prisma/client").$Enums.TaskLifecycle;
    internalStatusId: string | null;
    internalStatus: {
        id: string;
        text: string;
        color: string;
        stage: "Done" | "Inbox" | "In Progress" | "Code Review & QA";
    } | null;
    priority: number;
    tags: string[];
    assigneeId: string | null;
    assignee: {
        id: string;
        name: string;
        code: string;
        avatarColor: string;
    } | null;
    contributors: string[];
    assignments: {
        employeeId: string;
        allocatedHours: number;
    }[];
    allocatedHours: number;
    billingType: string;
    startDate: string | null;
    dueDate: string | null;
    parentId: string | null;
    dependencies: string[];
    required: boolean;
    baAnalysisComplete: boolean;
    developmentComplete: boolean;
    unitTestEvidence: import("@prisma/client/runtime/library").JsonValue;
    developerCompletionLog: string | null;
    codeReviewApproved: boolean;
    qaResult: import(".prisma/client").$Enums.QaResult | null;
    qaEvidence: import("@prisma/client/runtime/library").JsonValue;
    acceptanceSatisfied: boolean;
    testerApproval: boolean;
    completionDate: string | null;
    completedById: string | null;
    subtaskCount: number | undefined;
    bugCount: number | undefined;
    createdAt: string;
    updatedAt: string;
};
export declare function billingToDb(label: string): BillingType;
export declare function qaResultToDb(v: string | null | undefined): QaResult | null;
export { TaskStage };
