import APIRepository, { APIRepositoryProps } from '../../../../../core/modules/_shared/infrastructure/api/api-repository';
import { SharedProtectionPlanRepository } from '../../domain/repositories/shared-protection-plan-repository';
import SharedProtectionPlan from '../../domain/models/shared-protection-plan';
import { SharedProtectionPlanSummary } from '../../domain/models/shared-protection-plan-summary';
import { SharedPlanShare } from '../../domain/models/shared-plan-share';
import { FindSharedPlansCriteria } from '../../application/listing/find-shared-protection-plans-by-criteria-use-case';
/** Fake implementation — stores plans in localStorage. Use in dev/demo environments. */
export declare class FakeSharedProtectionPlanRepository extends APIRepository implements SharedProtectionPlanRepository {
    private storage;
    private dekMap;
    constructor(props: APIRepositoryProps);
    findById(id: string): Promise<SharedProtectionPlan | null>;
    findAll(): Promise<SharedProtectionPlanSummary[]>;
    findByCriteria(criteria: FindSharedPlansCriteria): Promise<SharedProtectionPlanSummary[]>;
    count(criteria: FindSharedPlansCriteria): Promise<{
        count: number;
    }>;
    save(plan: SharedProtectionPlan): Promise<void>;
    delete(id: string): Promise<void>;
    getDek(planId: string): string | undefined;
    configure(planId: string, dataShards: SharedPlanShare[], backupShards: SharedPlanShare[], keyShards: SharedPlanShare[], encryptedKey?: string, assetsMetadata?: any, custodianPair?: {
        keyShard: {
            id: string;
            data: string;
        };
        dataShard: {
            id: string;
            data: string;
        };
    }): Promise<void>;
    reconfigure(planId: string, mergeProcessId: string, dataShards: SharedPlanShare[], backupShards: SharedPlanShare[], keyShards: SharedPlanShare[], encryptedKey?: string, assetsMetadata?: any, custodianPair?: {
        keyShard: {
            id: string;
            data: string;
        };
        dataShard: {
            id: string;
            data: string;
        };
    }): Promise<void>;
}
