import { ApprovalProcessSnapshot } from '../models/approval-process';
import { PlanOperationType } from '../models/shared-plan-operation-process';
export interface ActivePlanOperationProcessSnapshot {
    id: string;
    planId: string;
    operationType: PlanOperationType;
    status: string;
    requestedAt: string;
    approvalProcess: ApprovalProcessSnapshot;
    operationWindowExpiresAt?: string;
}
export interface SharedPlanOperationProcessApiRepository {
    startProcess(planId: string, processId: string, operationType: PlanOperationType): Promise<ApprovalProcessSnapshot>;
    getApprovals(processId: string): Promise<ApprovalProcessSnapshot>;
    requestApproval(processId: string): Promise<void>;
    notifyApprovalParticipants(processId: string): Promise<void>;
    abortProcess(processId: string): Promise<void>;
    completeProcess(processId: string): Promise<void>;
    findActiveByPlanId(planId: string, tenantId: string, operationType?: PlanOperationType): Promise<ActivePlanOperationProcessSnapshot | null>;
}
