import { SnapshotService } from '../services/snapshot.service';
import { VersionDiffService } from '../services/version-diff.service';
import type { RegionId } from '../decorators/region.decorator';
import { SubmitReviewDto, ReviewSnapshotDto, PublishSnapshotDto } from '../dto/snapshot.dto';
import { VersionDiffQueryDto } from '../dto/query.dto';
export declare class SnapshotController {
    private readonly snapshotService;
    private readonly versionDiffService;
    private readonly logger;
    constructor(snapshotService: SnapshotService, versionDiffService: VersionDiffService);
    submitReview(id: string, dto: SubmitReviewDto, regionId: RegionId, userId: string): Promise<import("../dto/snapshot.dto").SubmitReviewResponse>;
    getPendingReviews(regionId: RegionId): Promise<{
        items: import("../dto/snapshot.dto").PendingReviewItem[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    review(snapshotId: string, dto: ReviewSnapshotDto, regionId: RegionId, userId: string): Promise<import("../dto/snapshot.dto").ReviewResponse>;
    publish(snapshotId: string, dto: PublishSnapshotDto, regionId: RegionId, userId: string): Promise<import("../dto/snapshot.dto").PublishResponse>;
    rollback(snapshotId: string, regionId: RegionId, userId: string): Promise<import("../dto/snapshot.dto").PublishResponse>;
    getActiveSnapshot(id: string, regionId: RegionId): Promise<import("../dto/snapshot.dto").SnapshotDetail>;
    getSnapshotHistory(id: string, regionId: RegionId): Promise<{
        items: import("../dto/snapshot.dto").SnapshotListItem[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    getSnapshotDetail(snapshotId: string, regionId: RegionId): Promise<import("../dto/snapshot.dto").SnapshotDetail>;
    compareVersions(id: string, query: VersionDiffQueryDto, regionId: RegionId): Promise<import("../dto/query.dto").VersionDiffResponse>;
    compareSnapshots(id1: string, id2: string, regionId: RegionId): Promise<import("../dto/query.dto").VersionDiffResponse>;
}
