import { PlansService } from './plans.service';
import { CreatePlanDto } from './dto/create-plan.dto';
import { UpdatePlanDto } from './dto/update-plan.dto';
export declare class PlansController {
    private readonly plans;
    constructor(plans: PlansService);
    list(): import("@prisma/client").Prisma.PrismaPromise<{
        id: string;
        name: string;
        isActive: boolean;
        code: string;
        currency: string;
        priceMonthly: number;
        features: import("@prisma/client/runtime/library").JsonValue;
    }[]>;
    listAdmin(page?: string, limit?: string, q?: string, code?: string, isActive?: string): Promise<{
        page: number;
        limit: number;
        total: number;
        items: {
            id: string;
            name: string;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
            code: string;
            currency: string;
            priceMonthly: number;
            features: import("@prisma/client/runtime/library").JsonValue;
        }[];
    }>;
    create(dto: CreatePlanDto): Promise<{
        upserted: boolean;
        plan: {
            id: string;
            name: string;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
            code: string;
            currency: string;
            priceMonthly: number;
            features: import("@prisma/client/runtime/library").JsonValue;
        };
    }>;
    update(id: string, dto: UpdatePlanDto): Promise<{
        updated: boolean;
        plan: {
            id: string;
            name: string;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
            code: string;
            currency: string;
            priceMonthly: number;
            features: import("@prisma/client/runtime/library").JsonValue;
        };
    }>;
    remove(id: string): Promise<{
        deleted: boolean;
    }>;
    seedDefaults(): Promise<{
        seeded: number;
        plans: {
            id: string;
            code: string;
            name: string;
        }[];
    }>;
    seedDefaultsPublic(): Promise<{
        seeded: number;
        alreadySeeded: boolean;
    } | {
        alreadySeeded: boolean;
        seeded: number;
        plans: {
            id: string;
            code: string;
            name: string;
        }[];
    }>;
}
