import { PrismaService } from "../../../core/database/prisma/prisma.service";
export interface GradeDefinition {
    code: string;
    name: string;
    minScore: number;
    maxScore: number;
    color: string;
    order: number;
}
export declare class GradeConfigService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    static readonly DEFAULT_GRADES: GradeDefinition[];
    create(data: {
        name: string;
        description?: string;
        grades: GradeDefinition[];
        isDefault?: boolean;
        createdBy: string;
    }): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string | null;
        isActive: boolean;
        createdBy: string;
        isDefault: boolean;
        grades: import("@prisma/client/runtime/library").JsonValue;
    }>;
    findAll(query?: {
        isActive?: boolean;
    }): Promise<{
        items: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        }[];
    }>;
    findById(id: string): Promise<{
        cycles: {
            id: string;
            status: import("@prisma/client").$Enums.CycleStatus;
            name: string;
        }[];
    } & {
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string | null;
        isActive: boolean;
        createdBy: string;
        isDefault: boolean;
        grades: import("@prisma/client/runtime/library").JsonValue;
    }>;
    findDefault(): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string | null;
        isActive: boolean;
        createdBy: string;
        isDefault: boolean;
        grades: import("@prisma/client/runtime/library").JsonValue;
    }>;
    update(id: string, data: {
        name?: string;
        description?: string;
        grades?: GradeDefinition[];
        isActive?: boolean;
    }): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string | null;
        isActive: boolean;
        createdBy: string;
        isDefault: boolean;
        grades: import("@prisma/client/runtime/library").JsonValue;
    }>;
    delete(id: string): Promise<{
        success: boolean;
    }>;
    setDefault(id: string): Promise<{
        cycles: {
            id: string;
            status: import("@prisma/client").$Enums.CycleStatus;
            name: string;
        }[];
    } & {
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string | null;
        isActive: boolean;
        createdBy: string;
        isDefault: boolean;
        grades: import("@prisma/client/runtime/library").JsonValue;
    }>;
    validateGrades(grades: GradeDefinition[]): {
        valid: boolean;
        error?: string;
    };
    getGradeByScore(grades: GradeDefinition[], score: number): GradeDefinition | null;
    getGradesForSelect(): Promise<{
        id: string;
        name: string;
    }[]>;
}
