import { DesignTemplateScope, UserRole } from '@prisma/client';
import { CreateTemplateDto } from './dto/create-template.dto';
import { UpdateTemplateDto } from './dto/update-template.dto';
import { TemplatesService } from './templates.service';
type RequestWithUser = {
    user: {
        id: string;
        role: UserRole;
        shopId: string | null;
    };
};
export declare class TemplatesController {
    private readonly templates;
    constructor(templates: TemplatesService);
    list(req: RequestWithUser, scope?: DesignTemplateScope, shopId?: string): Promise<{
        id: string;
        name: string;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        design: import("@prisma/client/runtime/library").JsonValue;
        scope: import("@prisma/client").$Enums.DesignTemplateScope;
    }[]>;
    create(req: RequestWithUser, dto: CreateTemplateDto): Promise<{
        id: string;
        name: string;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        design: import("@prisma/client/runtime/library").JsonValue;
        scope: import("@prisma/client").$Enums.DesignTemplateScope;
    }>;
    update(req: RequestWithUser, id: string, dto: UpdateTemplateDto): Promise<{
        id: string;
        name: string;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        design: import("@prisma/client/runtime/library").JsonValue;
        scope: import("@prisma/client").$Enums.DesignTemplateScope;
    }>;
    remove(req: RequestWithUser, id: string): Promise<{
        ok: boolean;
    }>;
}
export {};
