import { InstanceService } from '../services/instance.service';
import type { RegionId } from '../decorators/region.decorator';
import { CreateInstanceDto, UpdateInstanceDto, SubmitInstanceDto, QueryMyInstancesDto, WithdrawInstanceDto } from '../dto/instance.dto';
export declare class InstanceController {
    private readonly instanceService;
    private readonly logger;
    constructor(instanceService: InstanceService);
    create(dto: CreateInstanceDto, regionId: RegionId, userId: string): Promise<import("../dto/instance.dto").CreateInstanceResponse>;
    getMyInstances(query: QueryMyInstancesDto, regionId: RegionId, userId: string): Promise<{
        items: {
            id: string;
            formDefinitionId: string;
            formVersionId: string;
            businessKey: string;
            status: import("@prisma/client").$Enums.FormInstanceStatus;
            form: {
                id: string;
                name: string;
                key: string;
                category: string;
                slug: string;
            };
            version: number;
            data: import("@prisma/client/runtime/library").JsonValue;
            createdAt: string;
            updatedAt: string;
            submittedAt: string | undefined;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getInstance(id: string, regionId: RegionId, user: any): Promise<{
        id: string;
        formDefinitionId: string;
        formVersionId: string;
        businessKey: string;
        regionId: "CN" | "US" | "ME";
        status: import("@prisma/client").$Enums.FormInstanceStatus;
        approvalStatus: string | null;
        data: import("@prisma/client/runtime/library").JsonValue;
        definition: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.FormStatus;
            name: string;
            updatedAt: Date;
            description: string | null;
            requiresApproval: boolean;
            key: string;
            organizationId: string | null;
            aliases: import("@prisma/client/runtime/library").JsonValue | null;
            updatedBy: string | null;
            createdBy: string;
            icon: string | null;
            color: string | null;
            category: string;
            latestVersion: number;
            slug: string;
            slugHistory: import("@prisma/client/runtime/library").JsonValue | null;
            defaultLocale: string;
            supportedLocales: import("@prisma/client/runtime/library").JsonValue;
            approvalProcessKey: string | null;
        };
        version: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.FormVersionStatus;
            reviewComment: string | null;
            validation: import("@prisma/client/runtime/library").JsonValue | null;
            createdBy: string;
            version: number;
            isDefault: boolean;
            definitionId: string;
            nameI18n: import("@prisma/client/runtime/library").JsonValue;
            descriptionI18n: import("@prisma/client/runtime/library").JsonValue | null;
            schema: import("@prisma/client/runtime/library").JsonValue;
            uiSchema: import("@prisma/client/runtime/library").JsonValue | null;
            viewSchema: import("@prisma/client/runtime/library").JsonValue | null;
            changelog: string | null;
            reviewedBy: string | null;
            reviewedAt: Date | null;
            publishedAt: Date | null;
        };
        createdBy: {
            displayName: string;
            id: string;
            username: string;
            email: string;
        };
        submittedBy: {
            displayName: string;
            id: string;
            username: string;
            email: string;
        } | null;
        createdAt: string;
        updatedAt: string;
        submittedAt: string | undefined;
        approvalStartTime: string | undefined;
        approvalEndTime: string | undefined;
    }>;
    updateInstance(id: string, dto: UpdateInstanceDto, regionId: RegionId, userId: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.FormInstanceStatus;
        data: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: string;
    }>;
    submitInstance(id: string, dto: SubmitInstanceDto, regionId: RegionId, userId: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.FormInstanceStatus;
        submittedAt: string | undefined;
        approvalProcessId: string | undefined;
        message: string;
    }>;
    withdrawInstance(id: string, dto: WithdrawInstanceDto, regionId: RegionId, userId: string): Promise<import("../dto/instance.dto").WithdrawInstanceResponse>;
    deleteInstance(id: string, regionId: RegionId, userId: string): Promise<{
        id: string;
        message: string;
    }>;
    getFieldAccess(id: string, regionId: RegionId, user: any): Promise<import("../dto/instance.dto").FieldAccessResponse>;
}
