import { AccessPolicyInput } from '../../../../src/shared-configuration/modules/shared-protection-plan/domain/dto/shared-protection-plan-input';
import ProtectionPlanAccessPolicy from '../../../../src/shared-configuration/modules/shared-protection-plan/domain/models/protection-plan-access-policy';
/**
 * Generates a valid AccessPolicyInput (allow/deny with no overlapping IDs).
 */
export declare class SharedPlanAccessPolicyInputGenerator {
    static random({ teamsAllowCount, teamsDenyCount, membersAllowCount, membersDenyCount, }?: {
        teamsAllowCount?: number;
        teamsDenyCount?: number;
        membersAllowCount?: number;
        membersDenyCount?: number;
    }): AccessPolicyInput;
    /** Open to all: all teams/members allowed, nothing denied. */
    static openAccess(): AccessPolicyInput;
    /** Restricted: specific allow-lists, no deny entries. */
    static restrictedAccess({ memberIds, teamIds, }?: {
        memberIds?: string[];
        teamIds?: string[];
    }): AccessPolicyInput;
    /**
     * Builds a valid ProtectionPlanAccessPolicy domain model from an input,
     * useful when a test needs the domain class directly.
     */
    static toDomainModel(input?: AccessPolicyInput): ProtectionPlanAccessPolicy;
}
