import { SharedMergingProcessApiRepository } from '../../domain/repositories/shared-merging-process-api-repository';
import { SharedMergingProcessLocalRepository } from '../../domain/repositories/shared-merging-process-local-repository';
import { SharedProtectionPlanRepository } from '../../domain/repositories/shared-protection-plan-repository';
import { CollectedShare } from '../../domain/models/shared-plan-merge-process';
import { AuthMethodType } from '../../domain/models/shared-plan-authentication-method';
import { FakeSharedPlanEventListener } from '../services/fake-shared-plan-event-listener';
/**
 * Fake implementation of SharedMergingProcessApiRepository for development/demo.
 *
 * Authentication & permission events are fired asynchronously (fire-and-forget)
 * so the orchestrator's promise waiter is already armed before the first event fires.
 *
 * requestShares() reads the actual SSDP+ shares stored on the plan during
 * configuration, so the real SsdpPlusSharedPlanDataRevealer works end-to-end.
 */
export declare class FakeSharedMergingProcessApiRepository implements SharedMergingProcessApiRepository {
    private readonly localRepo;
    private readonly planRepo;
    private readonly eventListener;
    private completedMethods;
    private approvedModeratorIds;
    constructor(localRepo: SharedMergingProcessLocalRepository, planRepo: SharedProtectionPlanRepository, eventListener: FakeSharedPlanEventListener);
    startProcess(_planId: string, _processId: string): Promise<void>;
    requestAuthentication(processId: string): Promise<void>;
    getAuthenticationStatus(processId: string): Promise<{
        completedMethods: AuthMethodType[];
    }>;
    requestPermission(processId: string): Promise<void>;
    getPermissionStatus(processId: string): Promise<{
        approvedModeratorIds: string[];
    }>;
    requestShares(processId: string, storageLayerId: string): Promise<CollectedShare>;
}
