import { PrismaService } from "../../../../core/database/prisma/prisma.service";
import { SubmitReviewDto, ReviewSnapshotDto, PublishSnapshotDto, SubmitReviewResponse, ReviewResponse, PublishResponse, SnapshotDetail, SnapshotListItem, PendingReviewItem } from '../dto/snapshot.dto';
import { RegionId } from '../decorators/region.decorator';
export declare class SnapshotService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    submitReview(formId: string, dto: SubmitReviewDto, regionId: RegionId, userId: string): Promise<SubmitReviewResponse>;
    getPendingReviews(regionId: RegionId): Promise<{
        items: PendingReviewItem[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    review(snapshotId: string, dto: ReviewSnapshotDto, regionId: RegionId, userId: string): Promise<ReviewResponse>;
    publish(snapshotId: string, dto: PublishSnapshotDto, regionId: RegionId, userId: string): Promise<PublishResponse>;
    rollback(snapshotId: string, regionId: RegionId, userId: string): Promise<PublishResponse>;
    getActiveSnapshot(formId: string, regionId: RegionId): Promise<SnapshotDetail>;
    getSnapshotHistory(formId: string, regionId: RegionId): Promise<{
        items: SnapshotListItem[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    getSnapshotDetail(snapshotId: string, regionId: RegionId): Promise<SnapshotDetail>;
    private validateRegionAccess;
}
