import { ActiveMergeProcess } from '../../../protection-plan/domain/models/merging-process/active-merge-process';
import MergingProcess from '../../../protection-plan/domain/models/merging-process/merging-process';
import MergingProcessRepository, { MergeProcessFilterCriteria } from '../../../protection-plan/domain/repositories/merging-process-repository';
import APIRepository, { APIRepositoryProps } from '../../../../../core/modules/_shared/infrastructure/api/api-repository';
interface RepoProps extends APIRepositoryProps {
    mergingProcessKey: string;
}
export default class AppMergingProcessRepository extends APIRepository implements MergingProcessRepository {
    protected readonly props: RepoProps;
    private storage;
    private planRepo;
    constructor(props: RepoProps);
    createProcess(item: MergingProcess): Promise<void>;
    update(item: MergingProcess): Promise<any>;
    find(id: string): Promise<MergingProcess | undefined>;
    findByPlanId(id: string): Promise<MergingProcess | undefined>;
    remove(id: string): Promise<any>;
    removeByCriteria(criteria: MergeProcessFilterCriteria): Promise<string[]>;
    clean(): Promise<any>;
    checkCanCollectShares(id: string): Promise<boolean>;
    requestMobileShareRelease(data: {
        processId: string;
        shareholdersIds: string[];
    }): Promise<any>;
    startMergeProcess(data: {
        id: string;
        planId: string;
        selectedBeneficiariesIds: string[];
    }): Promise<any>;
    validateTrigger(data: {
        id: string;
        verificationId?: string;
        triggerId: string;
        code?: string;
    }): Promise<boolean>;
    getActiveProcess(planId: string): Promise<ActiveMergeProcess | undefined>;
    sendMergeRequest(planId: string): Promise<any>;
    closePlan(mergeProcessId: string): Promise<any>;
    sendPlanDataReleased(processId: string, revealOptions: {
        timeoutMinutes: number;
    }): Promise<void>;
    sendPlanSharesMerged(processId: string): Promise<void>;
    sendPlanShareStatusEvent(event: {
        name: string;
        planId: string;
        type: string;
        shareId?: string;
        processId: string;
    }): Promise<any>;
    authorizeMergeAuthority(credentials: {
        id: string;
        source: string;
        password: string;
        legacyPlanIds?: string[];
    }): Promise<void>;
    findPlanLegacyId(id: string): Promise<string | undefined>;
    retryActiveTrigger(processId: string): Promise<void>;
    findMergeAuthorityContext(): Promise<{
        userId?: string;
        deviceId?: string;
    } | undefined>;
    private save;
}
export {};
