import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
import { PrismaService } from '@hed-hog/api-prisma';
import { DeleteDTO } from '../dto/delete.dto';
import { UpdateIdsDTO } from '../dto/update-ids.dto';
import { CreateDTO } from './dto/create.dto';
import { OrderDTO } from './dto/order.dto';
import { UpdateDTO } from './dto/update.dto';
export declare class MenuService {
    private readonly prismaService;
    private readonly paginationService;
    constructor(prismaService: PrismaService, paginationService: PaginationService);
    private ensureValidParent;
    updateScreens(locale: string, menuId: number, data: UpdateIdsDTO): Promise<{
        count: number;
    }>;
    updateRoles(locale: string, menuId: number, data: UpdateIdsDTO): Promise<{
        count: number;
    }>;
    listScreens(locale: string, menuId: number, paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    listRoles(locale: string, menuId: number, paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    getMenus(locale: string, userId: number, menuId?: number): Promise<any[]>;
    getSystemMenu(locale: string, userId: number): Promise<any[]>;
    stats(): Promise<{
        total: number;
    }>;
    listAll(locale: string): Promise<any[]>;
    list(locale: string, paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    get(locale: string, menuId: number): Promise<{
        menu_locale: ({
            locale: {
                code: string;
            };
        } & {
            name: string;
            id: number;
            created_at: Date;
            updated_at: Date;
            locale_id: number;
            menu_id: number;
        })[];
    } & {
        id: number;
        url: string | null;
        order: number;
        icon: string;
        created_at: Date;
        updated_at: Date;
        slug: string;
        menu_id: number | null;
    }>;
    create(_locale: string, { slug, url, icon, order, menu_id, locale }: CreateDTO): Promise<{
        id: number;
        url: string | null;
        order: number;
        icon: string;
        created_at: Date;
        updated_at: Date;
        slug: string;
        menu_id: number | null;
    }>;
    update(locale: string, { id, data }: {
        id: number;
        data: UpdateDTO;
    }): Promise<{
        id: number;
        url: string | null;
        order: number;
        icon: string;
        created_at: Date;
        updated_at: Date;
        slug: string;
        menu_id: number | null;
    }>;
    delete(locale: string, { ids }: DeleteDTO): Promise<{
        count: number;
    }>;
    updateOrder(locale: string, { ids }: OrderDTO): Promise<void>;
}
//# sourceMappingURL=menu.service.d.ts.map