import { CollectedShare } from '../models/shared-plan-merge-process';
import { AuthMethodType } from '../models/shared-plan-authentication-method';
/** Remote API — all network calls for the merge process lifecycle. */
export interface SharedMergingProcessApiRepository {
    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[];
    }>;
    /** Request the share from a specific storage layer. Awaits until the layer returns its share. */
    requestShares(processId: string, storageLayerId: string): Promise<CollectedShare>;
}
