export interface AccessPolicySubjectsProps {
    allow: string[];
    deny: string[];
}
export interface AccessPolicyMetadataProps {
    updatedAt: string;
}
export interface ProtectionPlanAccessPolicyProps {
    version: number;
    teams: AccessPolicySubjectsProps;
    members: AccessPolicySubjectsProps;
    metadata: AccessPolicyMetadataProps;
}
export interface ProtectionPlanAccessPolicyPrimitiveProps extends ProtectionPlanAccessPolicyProps {
}
export interface AccessPolicyFlatEntry {
    subjectType: 'team' | 'member';
    subjectId: string;
    accessType: 'allow' | 'deny';
}
export default class ProtectionPlanAccessPolicy {
    private props;
    constructor(props: ProtectionPlanAccessPolicyProps);
    private static validate;
    get version(): number;
    get teams(): AccessPolicySubjectsProps;
    get members(): AccessPolicySubjectsProps;
    get metadata(): AccessPolicyMetadataProps;
    toFlatEntries(): AccessPolicyFlatEntry[];
    static fromPrimitives(primitives: ProtectionPlanAccessPolicyPrimitiveProps): ProtectionPlanAccessPolicy;
    toPrimitives(): ProtectionPlanAccessPolicyPrimitiveProps;
}
