import PersonalProtectionPlan from '../../../protection-plan/domain/models/personal-protection-plan';
import PaginationOptions from '../../../../../core/modules/_shared/domain/models/pagination-options';
import { ResourceCount } from '../../../../../core/modules/_shared/domain/models/resource-count';
import SortOptions from '../../../../../core/modules/_shared/domain/models/sort-options';
export type ProtectionPlanFilters = {
    id: string;
} | {
    beneficiary: {
        code: string;
        email?: string;
    };
} | {
    beneficiary: {
        code?: string;
        email: string;
    };
};
export default interface ProtectionPlanRepository {
    findByCriteria(filter?: ProtectionPlanFilters, pagination?: PaginationOptions, sort?: SortOptions): Promise<PersonalProtectionPlan[]>;
    find(id: string): Promise<PersonalProtectionPlan | undefined>;
    count(filter?: ProtectionPlanFilters): Promise<ResourceCount>;
    save(plan: PersonalProtectionPlan): Promise<any>;
    configure(operation: string, plan: PersonalProtectionPlan): Promise<any>;
}
