import ProtectionPlanRepository from '../../../protection-plan/domain/repositories/protection-plan-repository';
import MergeAuthorityProtectionPlanRepository from '../../../protection-plan/domain/repositories/merge-authority-protection-plan-repository';
import MergingProcessRepository from '../../../protection-plan/domain/repositories/merging-process-repository';
import { InitializeMergingProcessUseCase } from './initialize-merging-process-use-case';
type PresentBeneficiaryInput = {
    id?: string;
    email?: string;
    code?: string;
    deviceId?: string;
};
export interface StartMergeProcessInput {
    id?: string;
    planId: string;
    presentBeneficiaries: PresentBeneficiaryInput[];
    useBackupShares?: boolean;
}
export declare class StartMergeProcessUseCase {
    private mergeRepo;
    private planRepo;
    private maRepo;
    private initializeProcess;
    constructor(mergeRepo: MergingProcessRepository, planRepo: ProtectionPlanRepository, maRepo: MergeAuthorityProtectionPlanRepository, initializeProcess: InitializeMergingProcessUseCase);
    execute({ id, planId, presentBeneficiaries, useBackupShares, }: StartMergeProcessInput): Promise<void>;
    private getPlan;
    private assertMergeThresholdMet;
    private getBeneficiariesShareholderIds;
}
export {};
