import { PrismaService } from "../../core/database/prisma/prisma.service";
import { TemporalService } from './temporal/temporal.service';
import { AuditService } from "../../core/observability/audit/audit.service";
import { AdminTerminateDto, AdminApproveDto, AdminRejectDto, AdminReassignDto, AdminResumeWithApproversDto, AuditLogsQueryDto } from './dto/approval.dto';
import { AdminActionResponse, PaginatedAuditLogsResponse } from './dto/approval-response.dto';
interface AdminContext {
    adminReason?: string;
    requestId?: string;
    ipAddress?: string;
    userAgent?: string;
}
export declare class AdminApprovalService {
    private readonly prisma;
    private readonly temporalService;
    private readonly auditService;
    private readonly logger;
    constructor(prisma: PrismaService, temporalService: TemporalService, auditService: AuditService);
    private ensureValidUuid;
    terminate(instanceId: string, dto: AdminTerminateDto, operatorId: string, context: AdminContext): Promise<AdminActionResponse>;
    resumeWithApprovers(instanceId: string, dto: AdminResumeWithApproversDto, operatorId: string, context: AdminContext): Promise<AdminActionResponse>;
    approve(instanceId: string, dto: AdminApproveDto, operatorId: string, context: AdminContext): Promise<AdminActionResponse>;
    reject(instanceId: string, dto: AdminRejectDto, operatorId: string, context: AdminContext): Promise<AdminActionResponse>;
    reassign(instanceId: string, dto: AdminReassignDto, operatorId: string, context: AdminContext): Promise<AdminActionResponse>;
    getAuditLogs(query: AuditLogsQueryDto): Promise<PaginatedAuditLogsResponse>;
    private writeGlobalAuditLog;
    private getActionLabel;
    private createAuditLog;
    private getUserInfo;
    private mapUserInfo;
}
export {};
