import { FormManagementService } from '../services/form-management.service';
import { StatisticsService } from '../services/statistics.service';
import type { RegionId } from '../decorators/region.decorator';
import { CreateFormDefinitionDto, UpdateFormDefinitionDto } from '../dto/form-definition.dto';
import { SaveDesignDto, SaveFormDesignDto, SaveProcessDesignDto } from '../dto/form-design.dto';
import { QueryFormDefinitionsDto } from '../dto/query.dto';
import { StatisticsQueryDto, StatisticsResponseDto } from '../dto/statistics.dto';
import { PreviewProcessDto } from '../dto/instance.dto';
export declare class FormManagementController {
    private readonly formManagementService;
    private readonly statisticsService;
    private readonly logger;
    constructor(formManagementService: FormManagementService, statisticsService: StatisticsService);
    findAll(query: QueryFormDefinitionsDto, regionId: RegionId, userId: string, permissions: string[]): Promise<import("../dto/query.dto").PaginatedResponse<import("../dto/form-definition.dto").FormDefinitionListItem>>;
    create(dto: CreateFormDefinitionDto, regionId: RegionId, userId: string): Promise<{
        id: string;
        regionId: "CN" | "US" | "ME";
        key: string;
        name: string;
        description: string | null;
        category: string;
        status: import("@prisma/client").$Enums.FormStatus;
        templateId: string | null;
        formVersion: {
            id: string;
            version: number;
            versionName: null;
            status: import("@prisma/client").$Enums.FormVersionStatus;
        };
        processDefinition: {
            id: string;
            key: string;
            processVersion: {
                id: string;
                version: number;
                versionName: null;
                status: import("@prisma/client").$Enums.VersionStatus;
            };
        };
        createdAt: string;
        createdBy: string;
    }>;
    findOne(id: string, regionId: RegionId): Promise<{
        id: string;
        regionId: "CN" | "US" | "ME";
        key: string;
        name: string;
        description: string | null;
        category: string;
        status: import("@prisma/client").$Enums.FormStatus;
        formVersion: {
            id: string;
            version: number;
            versionName: string | null;
            status: import("@prisma/client").$Enums.FormVersionStatus;
        } | null;
        processDefinition: {
            id: string;
            key: string;
            processVersion: {
                id: string;
                version: number;
                versionName: string;
                status: import("@prisma/client").$Enums.VersionStatus;
            } | null;
        } | null;
        createdAt: string;
        updatedAt: string;
    }>;
    update(id: string, dto: UpdateFormDefinitionDto, regionId: RegionId, userId: string): Promise<{
        id: string;
        regionId: "CN" | "US" | "ME";
        key: string;
        name: string;
        description: string | null;
        category: string;
        status: import("@prisma/client").$Enums.FormStatus;
        icon: string | null;
        color: string | null;
        updatedAt: string;
    }>;
    remove(id: string, regionId: RegionId): Promise<{
        id: string;
        deleted: boolean;
    }>;
    getDesignData(id: string, regionId: RegionId): Promise<import("../dto/form-design.dto").DesignDataResponse>;
    saveDesign(id: string, dto: SaveDesignDto, regionId: RegionId, userId: string): Promise<import("../dto/form-design.dto").SaveDesignResponse>;
    saveFormDesign(id: string, dto: SaveFormDesignDto, regionId: RegionId, userId: string): Promise<{
        formVersionId: any;
        savedAt: string;
    }>;
    saveProcessDesign(id: string, dto: SaveProcessDesignDto, regionId: RegionId, userId: string): Promise<{
        processVersionId: any;
        savedAt: string;
    }>;
    previewProcess(id: string, dto: PreviewProcessDto, regionId: RegionId, userId: string): Promise<{
        model: {
            nodes: any[];
            edges: any;
        };
        initiator: {
            id: string;
            name: string;
            avatar: string | undefined;
        };
    }>;
    archive(id: string, regionId: RegionId, userId: string): Promise<{
        id: string;
        status: string;
        message: string;
        archivedAt?: undefined;
    } | {
        id: string;
        status: import("@prisma/client").$Enums.FormStatus;
        archivedAt: string;
        message: string;
    }>;
    disable(id: string, regionId: RegionId, userId: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.FormStatus;
        disabledAt: string;
        message: string;
    }>;
    enable(id: string, regionId: RegionId, userId: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.FormStatus;
        enabledAt: string;
        message: string;
    }>;
    getStatistics(query: StatisticsQueryDto, regionId: RegionId): Promise<StatisticsResponseDto>;
}
