import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { DevItemStatus, DevItemType, DevItemPriority } from '@prisma/client';
export interface DevItemQueryParams {
    page: number;
    pageSize: number;
    status?: DevItemStatus;
    itemType?: DevItemType;
    ownerId?: string;
    parentId?: string;
    priority?: DevItemPriority;
    keyword?: string;
}
export declare class ItemsRepository {
    private readonly prisma;
    constructor(prisma: PrismaService);
    findMany(params: DevItemQueryParams): Promise<{
        items: {
            title: string;
            code: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.DevItemStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            priority: import("@prisma/client").$Enums.DevItemPriority;
            content: import("@prisma/client/runtime/library").JsonValue | null;
            severity: import("@prisma/client").$Enums.DevItemSeverity | null;
            completedAt: Date | null;
            reviewedAt: Date | null;
            itemType: import("@prisma/client").$Enums.DevItemType;
            moduleKey: string | null;
            ownerId: string;
            reporterId: string;
            reviewerId: string | null;
            startAt: Date | null;
            devEtaAt: Date | null;
            testEtaAt: Date | null;
            etaAt: Date | null;
            devCompletedAt: Date | null;
            testCompletedAt: Date | null;
            labels: import("@prisma/client/runtime/library").JsonValue | null;
        }[];
        total: number;
    }>;
    findById(id: string): Promise<{
        title: string;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DevItemStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        parentId: string | null;
        priority: import("@prisma/client").$Enums.DevItemPriority;
        content: import("@prisma/client/runtime/library").JsonValue | null;
        severity: import("@prisma/client").$Enums.DevItemSeverity | null;
        completedAt: Date | null;
        reviewedAt: Date | null;
        itemType: import("@prisma/client").$Enums.DevItemType;
        moduleKey: string | null;
        ownerId: string;
        reporterId: string;
        reviewerId: string | null;
        startAt: Date | null;
        devEtaAt: Date | null;
        testEtaAt: Date | null;
        etaAt: Date | null;
        devCompletedAt: Date | null;
        testCompletedAt: Date | null;
        labels: import("@prisma/client/runtime/library").JsonValue | null;
    } | null>;
    findParentItem(id: string): Promise<{
        title: string;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DevItemStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        parentId: string | null;
        priority: import("@prisma/client").$Enums.DevItemPriority;
        content: import("@prisma/client/runtime/library").JsonValue | null;
        severity: import("@prisma/client").$Enums.DevItemSeverity | null;
        completedAt: Date | null;
        reviewedAt: Date | null;
        itemType: import("@prisma/client").$Enums.DevItemType;
        moduleKey: string | null;
        ownerId: string;
        reporterId: string;
        reviewerId: string | null;
        startAt: Date | null;
        devEtaAt: Date | null;
        testEtaAt: Date | null;
        etaAt: Date | null;
        devCompletedAt: Date | null;
        testCompletedAt: Date | null;
        labels: import("@prisma/client/runtime/library").JsonValue | null;
    } | null>;
    create(data: any): Promise<{
        title: string;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DevItemStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        parentId: string | null;
        priority: import("@prisma/client").$Enums.DevItemPriority;
        content: import("@prisma/client/runtime/library").JsonValue | null;
        severity: import("@prisma/client").$Enums.DevItemSeverity | null;
        completedAt: Date | null;
        reviewedAt: Date | null;
        itemType: import("@prisma/client").$Enums.DevItemType;
        moduleKey: string | null;
        ownerId: string;
        reporterId: string;
        reviewerId: string | null;
        startAt: Date | null;
        devEtaAt: Date | null;
        testEtaAt: Date | null;
        etaAt: Date | null;
        devCompletedAt: Date | null;
        testCompletedAt: Date | null;
        labels: import("@prisma/client/runtime/library").JsonValue | null;
    }>;
    createWithSequence(data: any, prefix: string): Promise<{
        title: string;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DevItemStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        parentId: string | null;
        priority: import("@prisma/client").$Enums.DevItemPriority;
        content: import("@prisma/client/runtime/library").JsonValue | null;
        severity: import("@prisma/client").$Enums.DevItemSeverity | null;
        completedAt: Date | null;
        reviewedAt: Date | null;
        itemType: import("@prisma/client").$Enums.DevItemType;
        moduleKey: string | null;
        ownerId: string;
        reporterId: string;
        reviewerId: string | null;
        startAt: Date | null;
        devEtaAt: Date | null;
        testEtaAt: Date | null;
        etaAt: Date | null;
        devCompletedAt: Date | null;
        testCompletedAt: Date | null;
        labels: import("@prisma/client/runtime/library").JsonValue | null;
    }>;
    update(id: string, data: any): Promise<{
        title: string;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DevItemStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        parentId: string | null;
        priority: import("@prisma/client").$Enums.DevItemPriority;
        content: import("@prisma/client/runtime/library").JsonValue | null;
        severity: import("@prisma/client").$Enums.DevItemSeverity | null;
        completedAt: Date | null;
        reviewedAt: Date | null;
        itemType: import("@prisma/client").$Enums.DevItemType;
        moduleKey: string | null;
        ownerId: string;
        reporterId: string;
        reviewerId: string | null;
        startAt: Date | null;
        devEtaAt: Date | null;
        testEtaAt: Date | null;
        etaAt: Date | null;
        devCompletedAt: Date | null;
        testCompletedAt: Date | null;
        labels: import("@prisma/client/runtime/library").JsonValue | null;
    }>;
}
