import { PrismaService } from "../../../../core/database/prisma/prisma.service";
import { Prisma } from '@prisma/client';
import { CreateFormTemplateDto, UpdateFormTemplateDto, QueryFormTemplatesDto, CreateFormFromTemplateDto } from '../dto';
import { FormIdentifierResolverService } from './form-identifier-resolver.service';
import { FormDefinitionService } from './form-definition.service';
export declare class FormTemplateService {
    private readonly prisma;
    private readonly identifierResolver;
    private readonly formDefinitionService;
    private readonly logger;
    constructor(prisma: PrismaService, identifierResolver: FormIdentifierResolverService, formDefinitionService: FormDefinitionService);
    create(dto: CreateFormTemplateDto, createdBy: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        isPublic: boolean;
        template: Prisma.JsonValue;
        updatedBy: string | null;
        createdBy: string;
        icon: string | null;
        color: string | null;
        category: string;
        nameI18n: Prisma.JsonValue;
        descriptionI18n: Prisma.JsonValue | null;
        isBuiltin: boolean;
    }>;
    findAll(query: QueryFormTemplatesDto, userId?: string): Promise<{
        items: any[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findOne(templateIdentifier: string): Promise<any>;
    update(templateIdentifier: string, dto: UpdateFormTemplateDto, updatedBy: string): Promise<any>;
    remove(templateIdentifier: string): Promise<{
        id: string;
        deleted: boolean;
    }>;
    createFormFromTemplate(templateIdentifier: string, dto: CreateFormFromTemplateDto, createdBy: string): Promise<any>;
    private formatTemplateResponse;
}
