import type { Request as ExpressRequest } from 'express';
import { PrismaService } from "../../../core/database/prisma/prisma.service";
import type { ModelRoutingScope } from '@prisma/client';
interface CreateRuleBody {
    scope?: ModelRoutingScope;
    scopeRefId?: string;
    name?: string;
    priority?: number;
    enabled?: boolean;
    pattern?: unknown;
    primary?: {
        provider?: string;
        model?: string;
    };
    fallbacks?: Array<{
        provider: string;
        model: string;
    }>;
    reasoning?: string;
}
interface UpdateRuleBody {
    name?: string;
    priority?: number;
    enabled?: boolean;
    pattern?: unknown;
    primary?: {
        provider?: string;
        model?: string;
    };
    fallbacks?: Array<{
        provider: string;
        model: string;
    }>;
    reasoning?: string;
}
export declare class AgentAdminRulesController {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(req: ExpressRequest): Promise<{
        items: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            enabled: boolean;
            scope: import("@prisma/client").$Enums.ModelRoutingScope;
            priority: number;
            pattern: import("@prisma/client/runtime/library").JsonValue;
            reasoning: string | null;
            scopeRefId: string;
            primary: import("@prisma/client/runtime/library").JsonValue;
            fallbacks: import("@prisma/client/runtime/library").JsonValue;
        }[];
    }>;
    create(body: CreateRuleBody, req: ExpressRequest): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        scope: import("@prisma/client").$Enums.ModelRoutingScope;
        priority: number;
        pattern: import("@prisma/client/runtime/library").JsonValue;
        reasoning: string | null;
        scopeRefId: string;
        primary: import("@prisma/client/runtime/library").JsonValue;
        fallbacks: import("@prisma/client/runtime/library").JsonValue;
    }>;
    update(id: string, body: UpdateRuleBody, req: ExpressRequest): Promise<{
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        scope: import("@prisma/client").$Enums.ModelRoutingScope;
        priority: number;
        pattern: import("@prisma/client/runtime/library").JsonValue;
        reasoning: string | null;
        scopeRefId: string;
        primary: import("@prisma/client/runtime/library").JsonValue;
        fallbacks: import("@prisma/client/runtime/library").JsonValue;
    }>;
    remove(id: string, req: ExpressRequest): Promise<{
        deleted: boolean;
        id: string;
    }>;
}
export {};
