import { BugStatus, Prisma } from '@prisma/client';
import { AuthUser } from '../lib/rbac';
export declare function hasUnitTestEvidence(bug: {
    unitTestEvidence: Prisma.JsonValue | null;
    attachments?: {
        kind: string | null;
    }[];
}): boolean;
export declare function validateReadyForRetest(bug: {
    unitTestEvidence: Prisma.JsonValue | null;
    attachments?: {
        kind: string | null;
    }[];
}): string[];
export declare function tryBugTransition(user: AuthUser, bugId: string, toStatusLabel: string, details?: string): Promise<{
    bug: {
        id: string;
        code: string;
        description: string;
        status: import(".prisma/client").$Enums.BugStatus;
        createdAt: Date;
        updatedAt: Date;
        allocatedHours: Prisma.Decimal;
        title: string;
        priority: number;
        unitTestEvidence: Prisma.JsonValue | null;
        assigneeId: string | null;
        reproSteps: string;
        expected: string;
        actual: string;
        severity: import(".prisma/client").$Enums.BugSeverity;
        resolutionNotes: string;
        blocking: boolean;
        parentTaskId: string;
        reporterId: string;
    };
    message: string;
}>;
/** When assignee is set and status is Open, move to Assigned. */
export declare function nextStatusOnAssignee(current: BugStatus, assigneeId: string | null | undefined): BugStatus;
