from __future__ import annotations

from enum import Enum
from typing import Any, Dict, List, Type

import System
import System.Collections
import System.Configuration
import System.Configuration.Assemblies
import System.Data
import System.Globalization
import System.IO
import System.Reflection
import System.Runtime
import System.Runtime.CompilerServices
import System.Runtime.InteropServices
import System.Runtime.Remoting
import System.Runtime.Serialization
import System.Security
import System.Security.AccessControl
import System.Security.Cryptography
import System.Security.Cryptography.X509Certificates
import System.Security.Policy
import System.Threading
import System.Threading.Tasks
import System.Xml
import System.Xml.Schema
import System.Xml.Serialization
from System.ComponentModel import MarshalByValueComponent


class FileSecurity:

    @property
    def AccessRightType(self): ...

    @AccessRightType.setter
    def AccessRightType(self): ...

    def AccessRuleFactory(self,
            _: System.Security.Principal.IdentityReference,
            __: int,
            ___: bool,
            ____: System.Security.AccessControl.InheritanceFlags,
            _____: System.Security.AccessControl.PropagationFlags,
            ______: System.Security.AccessControl.AccessControlType,
            ) -> System.Security.AccessControl.AccessRule: ...

    @property
    def AccessRuleType(self): ...

    @AccessRuleType.setter
    def AccessRuleType(self): ...

    @property
    def AccessRulesModified(self): ...

    @AccessRulesModified.setter
    def AccessRulesModified(self): ...

    def AddAccessRule(self, _: System.Security.AccessControl.AccessRule) -> None: ...

    def AddAuditRule(self, _: System.Security.AccessControl.AuditRule) -> None: ...

    @property
    def AreAccessRulesCanonical(self): ...

    @AreAccessRulesCanonical.setter
    def AreAccessRulesCanonical(self): ...

    @property
    def AreAccessRulesProtected(self): ...

    @AreAccessRulesProtected.setter
    def AreAccessRulesProtected(self): ...

    @property
    def AreAuditRulesCanonical(self): ...

    @AreAuditRulesCanonical.setter
    def AreAuditRulesCanonical(self): ...

    @property
    def AreAuditRulesProtected(self): ...

    @AreAuditRulesProtected.setter
    def AreAuditRulesProtected(self): ...

    def AuditRuleFactory(self,
            _: System.Security.Principal.IdentityReference,
            __: int,
            ___: bool,
            ____: System.Security.AccessControl.InheritanceFlags,
            _____: System.Security.AccessControl.PropagationFlags,
            ______: System.Security.AccessControl.AuditFlags,
            ) -> System.Security.AccessControl.AuditRule: ...

    @property
    def AuditRuleType(self): ...

    @AuditRuleType.setter
    def AuditRuleType(self): ...

    @property
    def AuditRulesModified(self): ...

    @AuditRulesModified.setter
    def AuditRulesModified(self): ...

    def Equals(self, _: object, __: object) -> bool: ...

    def ExceptionFromErrorCode(self, *args, **kwargs) -> Any: ...

    def Finalize(self) -> None: ...

    def GetAccessRules(self,
            _: bool,
            __: bool,
            ___: Type,
            ) -> System.Security.AccessControl.AuthorizationRuleCollection: ...

    def GetAuditRules(self,
            _: bool,
            __: bool,
            ___: Type,
            ) -> System.Security.AccessControl.AuthorizationRuleCollection: ...

    def GetGroup(self, _: Type) -> System.Security.Principal.IdentityReference: ...

    def GetHashCode(self) -> int: ...

    def GetOwner(self, _: Type) -> System.Security.Principal.IdentityReference: ...

    def GetSecurityDescriptorBinaryForm(self) -> List[bytes]: ...

    def GetSecurityDescriptorSddlForm(self,
            _: System.Security.AccessControl.AccessControlSections,
            ) -> str: ...

    def GetType(self) -> Type: ...

    @property
    def GroupModified(self): ...

    @GroupModified.setter
    def GroupModified(self): ...

    @property
    def IsContainer(self): ...

    @IsContainer.setter
    def IsContainer(self): ...

    @property
    def IsDS(self): ...

    @IsDS.setter
    def IsDS(self): ...

    def IsSddlConversionSupported(self) -> bool: ...

    def MemberwiseClone(self) -> object: ...

    def ModifyAccess(self,
            _: System.Security.AccessControl.AccessControlModification,
            __: System.Security.AccessControl.AccessRule,
            ___: bool,
            ) -> bool: ...

    def ModifyAccessRule(self,
            _: System.Security.AccessControl.AccessControlModification,
            __: System.Security.AccessControl.AccessRule,
            ___: bool,
            ) -> bool: ...

    def ModifyAudit(self,
            _: System.Security.AccessControl.AccessControlModification,
            __: System.Security.AccessControl.AuditRule,
            ___: bool,
            ) -> bool: ...

    def ModifyAuditRule(self,
            _: System.Security.AccessControl.AccessControlModification,
            __: System.Security.AccessControl.AuditRule,
            ___: bool,
            ) -> bool: ...

    def Overloads(self, *args, **kwargs) -> Any: ...

    @property
    def OwnerModified(self): ...

    @OwnerModified.setter
    def OwnerModified(self): ...

    def Persist(self,
            _: bool,
            __: str,
            ___: System.Security.AccessControl.AccessControlSections,
            ) -> None: ...

    def PurgeAccessRules(self, _: System.Security.Principal.IdentityReference) -> None: ...

    def PurgeAuditRules(self, _: System.Security.Principal.IdentityReference) -> None: ...

    def ReadLock(self) -> None: ...

    def ReadUnlock(self) -> None: ...

    def ReferenceEquals(self, _: object, __: object) -> bool: ...

    def RemoveAccessRule(self, _: System.Security.AccessControl.AccessRule) -> bool: ...

    def RemoveAccessRuleAll(self, _: System.Security.AccessControl.AccessRule) -> None: ...

    def RemoveAccessRuleSpecific(self,
            _: System.Security.AccessControl.AccessRule,
            ) -> None: ...

    def RemoveAuditRule(self, _: System.Security.AccessControl.AuditRule) -> bool: ...

    def RemoveAuditRuleAll(self, _: System.Security.AccessControl.AuditRule) -> None: ...

    def RemoveAuditRuleSpecific(self,
            _: System.Security.AccessControl.AuditRule,
            ) -> None: ...

    def ResetAccessRule(self, _: System.Security.AccessControl.AccessRule) -> None: ...

    def SetAccessRule(self, _: System.Security.AccessControl.AccessRule) -> None: ...

    def SetAccessRuleProtection(self, _: bool, __: bool) -> None: ...

    def SetAuditRule(self, _: System.Security.AccessControl.AuditRule) -> None: ...

    def SetAuditRuleProtection(self, _: bool, __: bool) -> None: ...

    def SetGroup(self, _: System.Security.Principal.IdentityReference) -> None: ...

    def SetOwner(self, _: System.Security.Principal.IdentityReference) -> None: ...

    def SetSecurityDescriptorBinaryForm(self,
            _: List[bytes],
            __: System.Security.AccessControl.AccessControlSections,
            ) -> None: ...

    def SetSecurityDescriptorSddlForm(self,
            _: str,
            __: System.Security.AccessControl.AccessControlSections,
            ) -> None: ...

    def ToString(self) -> str: ...

    def WriteLock(self) -> None: ...

    def WriteUnlock(self) -> None: ...

    def __init__(self, *args, **kwargs) -> Any: ...

    def get_AccessRightType(self) -> Type: ...

    def get_AccessRuleType(self) -> Type: ...

    def get_AccessRulesModified(self) -> bool: ...

    def get_AreAccessRulesCanonical(self) -> bool: ...

    def get_AreAccessRulesProtected(self) -> bool: ...

    def get_AreAuditRulesCanonical(self) -> bool: ...

    def get_AreAuditRulesProtected(self) -> bool: ...

    def get_AuditRuleType(self) -> Type: ...

    def get_AuditRulesModified(self) -> bool: ...

    def get_GroupModified(self) -> bool: ...

    def get_IsContainer(self) -> bool: ...

    def get_IsDS(self) -> bool: ...

    def get_OwnerModified(self) -> bool: ...

    def set_AccessRulesModified(self, _: bool) -> None: ...

    def set_AuditRulesModified(self, _: bool) -> None: ...

    def set_GroupModified(self, _: bool) -> None: ...

    def set_OwnerModified(self, _: bool) -> None: ...
