import { IConnection, IOptions } from "../../../../connection.ts";
import { Service } from "../../../../espConnection.ts";
export declare namespace WsAccess {
    type int = number;
    type unsignedInt = number;
    type long = number;
    type base64Binary = string;
    enum ViewMemberType {
        User = "User",
        Group = "Group"
    }
    enum UserSortBy {
        username = "username",
        fullname = "fullname",
        passwordexpiration = "passwordexpiration",
        employeeID = "employeeID",
        employeeNumber = "employeeNumber"
    }
    enum GroupSortBy {
        Name = "Name",
        ManagedBy = "ManagedBy"
    }
    enum AccountTypeReq {
        Any = "Any",
        User = "User",
        Group = "Group"
    }
    enum ResourcePermissionSortBy {
        Name = "Name",
        Type = "Type"
    }
    enum ResourceSortBy {
        Name = "Name"
    }
    interface AccountPermissionsRequest {
        AccountName?: string;
        IsGroup?: boolean;
        IncludeGroup?: boolean;
    }
    interface BasednNames {
        Item: string[];
    }
    interface Permission {
        BasednName: string;
        rname: string;
        prefix: string;
        ResourceName: string;
        PermissionName: string;
        allow_access: boolean;
        allow_read: boolean;
        allow_write: boolean;
        allow_full: boolean;
        deny_access: boolean;
        deny_read: boolean;
        deny_write: boolean;
        deny_full: boolean;
    }
    interface Permissions {
        Permission: Permission[];
    }
    interface GroupPermission {
        GroupName: string;
        BasednNames: BasednNames;
        Permissions: Permissions;
    }
    interface GroupPermissions {
        GroupPermission: GroupPermission[];
    }
    interface AccountPermissionsResponse {
        AccountName: string;
        IsGroup: boolean;
        IncludeGroup: boolean;
        BasednNames: BasednNames;
        Permissions: Permissions;
        GroupPermissions: GroupPermissions;
    }
    interface AccountPermissionsV2Request {
        ResourceName?: string;
        AccountName?: string;
        IsGroup?: boolean;
        IncludeGroup?: boolean;
    }
    interface AccountPermissionsV2Response {
        BasednNames: BasednNames;
        Permissions: Permissions;
        GroupPermissions: GroupPermissions;
    }
    interface AddUserRequest {
        username?: string;
        firstname?: string;
        lastname?: string;
        password1?: string;
        password2?: string;
        employeeID?: string;
        employeeNumber?: string;
    }
    interface AddUserResponse {
        retcode: int;
        retmsg: string;
    }
    interface AddViewRequest {
        viewname?: string;
        description?: string;
    }
    interface AddViewResponse {
        viewname: string;
        description: string;
    }
    interface AddViewColumnRequest {
        viewname?: string;
        filename?: string;
        columnname?: string;
    }
    interface AddViewColumnResponse {
        viewname: string;
        filename: string;
        columnname: string;
    }
    interface AddViewMemberRequest {
        viewname?: string;
        membername?: string;
        membertype?: ViewMemberType;
    }
    interface AddViewMemberResponse {
        viewname: string;
        membername: string;
        membertype: ViewMemberType;
    }
    interface ClearPermissionsCacheRequest {
    }
    interface ClearPermissionsCacheResponse {
        retcode: int;
    }
    interface DeleteViewRequest {
        viewname?: string;
    }
    interface DeleteViewResponse {
        viewname: string;
    }
    interface DeleteViewColumnRequest {
        viewname?: string;
        filename?: string;
        columnname?: string;
    }
    interface DeleteViewColumnResponse {
        viewname: string;
        filename: string;
        columnname: string;
    }
    interface DeleteViewMemberRequest {
        viewname?: string;
        membername?: string;
        membertype?: ViewMemberType;
    }
    interface DeleteViewMemberResponse {
        viewname: string;
        membername: string;
        membertype: ViewMemberType;
    }
    interface DisableScopeScansRequest {
    }
    interface scopeScansStatus {
        isEnabled: boolean;
        retcode: int;
        retmsg: string;
    }
    interface DisableScopeScansResponse {
        scopeScansStatus: scopeScansStatus;
    }
    interface EnableScopeScansRequest {
    }
    interface EnableScopeScansResponse {
        scopeScansStatus: scopeScansStatus;
    }
    interface FilePermissionRequest {
        FileName?: string;
        UserName?: string;
        GroupName?: string;
    }
    interface User {
        username: string;
        fullname: string;
        passwordexpiration: string;
        employeeID: string;
        employeeNumber: string;
    }
    interface Users {
        User: User[];
    }
    interface Group {
        name: string;
        deletable: boolean;
        groupOwner: string;
        groupDesc: string;
    }
    interface Groups {
        Group: Group[];
    }
    interface FilePermissionResponse {
        NoSecMngr: boolean;
        FileName: string;
        UserName: string;
        GroupName: string;
        toomany: boolean;
        Users: Users;
        Groups: Groups;
        UserPermission: string;
    }
    interface groupnames {
        Item: string[];
    }
    interface GroupActionRequest {
        groupnames?: groupnames;
        ActionType?: string;
        DeletePermission?: boolean;
    }
    interface GroupActionResponse {
        Groupnames: string;
        Permissions: Permissions;
        retcode: int;
        retmsg: string;
    }
    interface GroupAddRequest {
        groupname?: string;
        groupOwner?: string;
        groupDesc?: string;
    }
    interface GroupAddResponse {
        groupname: string;
        retcode: int;
        retmsg: string;
    }
    interface GroupEditRequest {
        groupname?: string;
    }
    interface GroupEditResponse {
        groupname: string;
        Users: Users;
    }
    interface usernames {
        Item: string[];
    }
    interface GroupMemberEditRequest {
        groupname?: string;
        action?: string;
        usernames?: usernames;
    }
    interface GroupMemberEditResponse {
        groupname: string;
        action: string;
        retcode: int;
        retmsg: string;
    }
    interface GroupMemberEditInputRequest {
        searchinput?: string;
        groupname?: string;
    }
    interface GroupMemberEditInputResponse {
        groupname: string;
        toomany: boolean;
        Users: Users;
    }
    interface GroupMemberQueryRequest {
        GroupName?: string;
        PageSize?: unsignedInt;
        PageStartFrom?: long;
        SortBy?: UserSortBy;
        Descending?: boolean;
        CacheHint?: long;
    }
    interface GroupMemberQueryResponse {
        NoSecMngr: boolean;
        Users: Users;
        TotalUsers: long;
        CacheHint: long;
    }
    interface GroupQueryRequest {
        PageSize?: unsignedInt;
        PageStartFrom?: long;
        SortBy?: GroupSortBy;
        Descending?: boolean;
        CacheHint?: long;
    }
    interface GroupQueryResponse {
        NoSecMngr: boolean;
        Groups: Groups;
        TotalGroups: long;
        CacheHint: long;
    }
    interface GroupRequest {
    }
    interface GroupResponse {
        NoSecMngr: boolean;
        Groups: Groups;
    }
    interface PermissionActionRequest {
        rname?: string;
        prefix?: string;
        action?: string;
        account_name?: string;
        account_type?: int;
        allow_access?: boolean;
        allow_read?: boolean;
        allow_write?: boolean;
        allow_full?: boolean;
        deny_access?: boolean;
        deny_read?: boolean;
        deny_write?: boolean;
        deny_full?: boolean;
        user?: string;
        group?: string;
        BasednName?: string;
        ResourceName?: string;
    }
    interface PermissionActionResponse {
        AccountName: string;
        IsGroup: boolean;
        retcode: int;
        retmsg: string;
    }
    interface BasednsRequest {
    }
    interface Basedn {
        name: string;
        basedn: string;
        rtype: string;
        rtitle: string;
        templatename: string;
    }
    interface Basedns {
        Basedn: Basedn[];
    }
    interface BasednsResponse {
        NoSecMngr: boolean;
        Basedns: Basedns;
    }
    interface names {
        Item: string[];
    }
    interface PermissionsResetRequest {
        BasednName?: string;
        prefix?: string;
        names?: names;
        allow_access?: boolean;
        allow_read?: boolean;
        allow_write?: boolean;
        allow_full?: boolean;
        deny_access?: boolean;
        deny_read?: boolean;
        deny_write?: boolean;
        deny_full?: boolean;
        userarray?: string;
        grouparray?: string;
    }
    interface PermissionsResetResponse {
        retcode: int;
        retmsg: string;
    }
    interface ws_accessPingRequest {
    }
    interface ws_accessPingResponse {
    }
    interface QueryScopeScansEnabledRequest {
    }
    interface QueryScopeScansEnabledResponse {
        scopeScansStatus: scopeScansStatus;
    }
    interface QueryUserViewColumnsRequest {
        username?: string;
    }
    interface ViewColumn {
        viewname: string;
        filename: string;
        columnname: string;
    }
    interface viewcolumns {
        ViewColumn: ViewColumn[];
    }
    interface QueryUserViewColumnsResponse {
        username: string;
        viewcolumns: viewcolumns;
    }
    interface QueryViewColumnsRequest {
        viewname?: string;
    }
    interface QueryViewColumnsResponse {
        viewname: string;
        viewcolumns: viewcolumns;
    }
    interface QueryViewMembersRequest {
        viewname?: string;
    }
    interface ViewMember {
        viewname: string;
        name: string;
        membertype: ViewMemberType;
    }
    interface viewmembers {
        ViewMember: ViewMember[];
    }
    interface QueryViewMembersResponse {
        viewname: string;
        viewmembers: viewmembers;
    }
    interface QueryViewsRequest {
    }
    interface View {
        viewname: string;
        description: string;
    }
    interface views {
        View: View[];
    }
    interface QueryViewsResponse {
        views: views;
    }
    interface ResourceAddRequest {
        BasednName?: string;
        name?: string;
        description?: string;
        prefix?: string;
    }
    interface ResourceAddResponse {
        retcode: int;
        retmsg: string;
    }
    interface ResourceDeleteRequest {
        BasednName?: string;
        prefix?: string;
        names?: names;
        DoUpdate?: int;
    }
    interface ResourceDeleteResponse {
        retcode: int;
        retmsg: string;
    }
    interface ResourcePermissionQueryRequest {
        BasednName?: string;
        prefix?: string;
        Name?: string;
        AccountType?: AccountTypeReq;
        PageSize?: unsignedInt;
        PageStartFrom?: long;
        SortBy?: ResourcePermissionSortBy;
        Descending?: boolean;
        CacheHint?: long;
    }
    interface Permission2 {
        account_name: string;
        escaped_account_name: string;
        account_type: int;
        allow_access: boolean;
        allow_read: boolean;
        allow_write: boolean;
        allow_full: boolean;
        deny_access: boolean;
        deny_read: boolean;
        deny_write: boolean;
        deny_full: boolean;
    }
    interface Permissions2 {
        Permission: Permission2[];
    }
    interface ResourcePermissionQueryResponse {
        NoSecMngr: boolean;
        Permissions: Permissions2;
        TotalResourcePermissions: long;
        CacheHint: long;
    }
    interface ResourcePermissionsRequest {
        name?: string;
        BasednName?: string;
        prefix?: string;
    }
    interface ResourcePermissionsResponse {
        Permissions: Permissions2;
    }
    interface ResourceQueryRequest {
        BasednName?: string;
        prefix?: string;
        Name?: string;
        PageSize?: unsignedInt;
        PageStartFrom?: long;
        SortBy?: ResourceSortBy;
        Descending?: boolean;
        CacheHint?: long;
    }
    interface Resource {
        name: string;
        description: string;
        isSpecial: boolean;
    }
    interface Resources {
        Resource: Resource[];
    }
    interface ResourceQueryResponse {
        NoSecMngr: boolean;
        Resources: Resources;
        TotalResources: long;
        CacheHint: long;
    }
    interface ResourcesRequest {
        templatename?: string;
        BasednName?: string;
        prefix?: string;
        searchinput?: string;
    }
    interface ResourcesResponse {
        Resources: Resources;
        default_basedn: string;
        default_name: string;
        toomany: boolean;
        scopeScansStatus: scopeScansStatus;
    }
    interface UserAccountExportRequest {
        usernames?: usernames;
        groupnames?: groupnames;
    }
    interface UserAccountExportResponse {
        Result: base64Binary;
    }
    interface UserActionRequest {
        action?: string;
        ActionType?: string;
        usernames?: usernames;
    }
    interface UserActionResponse {
        action: string;
        retcode: int;
        retmsg: string;
    }
    interface UserEditRequest {
        username?: string;
    }
    interface UserEditResponse {
        username: string;
        isLDAPAdmin: boolean;
        Groups: Groups;
    }
    interface UserGroupEditRequest {
        username?: string;
        action?: string;
        groupnames?: groupnames;
    }
    interface UserGroupEditResponse {
        username: string;
        action: string;
        retcode: int;
        retmsg: string;
    }
    interface UserGroupEditInputRequest {
        username?: string;
    }
    interface UserGroupEditInputResponse {
        username: string;
        Groups: Groups;
    }
    interface UserInfoEditRequest {
        username?: string;
        firstname?: string;
        lastname?: string;
        employeeID?: string;
        employeeNumber?: string;
    }
    interface UserInfoEditResponse {
        username: string;
        retcode: int;
        retmsg: string;
    }
    interface UserInfoEditInputRequest {
        username?: string;
    }
    interface UserInfoEditInputResponse {
        username: string;
        firstname: string;
        lastname: string;
        employeeID: string;
        PasswordExpiration: string;
        employeeNumber: string;
    }
    interface UserPosixRequest {
        username?: string;
        posixenabled?: boolean;
        gidnumber?: string;
        uidnumber?: string;
        homedirectory?: string;
        loginshell?: string;
    }
    interface UserPosixResponse {
        username: string;
        retcode: int;
        retmsg: string;
    }
    interface UserPosixInputRequest {
        username?: string;
    }
    interface UserPosixInputResponse {
        username: string;
        posixenabled: boolean;
        gidnumber: string;
        uidnumber: string;
        homedirectory: string;
        loginshell: string;
    }
    interface UserQueryRequest {
        Name?: string;
        PageSize?: unsignedInt;
        PageStartFrom?: long;
        SortBy?: UserSortBy;
        Descending?: boolean;
        CacheHint?: long;
    }
    interface UserQueryResponse {
        NoSecMngr: boolean;
        Users: Users;
        TotalUsers: long;
        CacheHint: long;
    }
    interface UserResetPassRequest {
        username?: string;
        newPassword?: string;
        newPasswordRetype?: string;
    }
    interface UserResetPassResponse {
        username: string;
        retcode: int;
        retmsg: string;
    }
    interface UserResetPassInputRequest {
        username?: string;
    }
    interface UserResetPassInputResponse {
        username: string;
    }
    interface UserSudoersRequest {
        username?: string;
        action?: string;
        sudoHost?: string;
        sudoCommand?: string;
        sudoOption?: string;
    }
    interface UserSudoersResponse {
        username: string;
        retcode: int;
        retmsg: string;
    }
    interface UserSudoersInputRequest {
        username?: string;
    }
    interface UserSudoersInputResponse {
        username: string;
        insudoers: boolean;
        sudoHost: string;
        sudoCommand: string;
        sudoOption: string;
    }
    interface UserRequest {
        searchinput?: string;
    }
    interface UserResponse {
        NoSecMngr: boolean;
        toomany: boolean;
        posixok: boolean;
        Users: Users;
    }
}
export declare class AccessServiceBase extends Service {
    constructor(optsConnection: IOptions | IConnection);
    AccountPermissions(request: Partial<WsAccess.AccountPermissionsRequest>): Promise<WsAccess.AccountPermissionsResponse>;
    AccountPermissionsV2(request: Partial<WsAccess.AccountPermissionsV2Request>): Promise<WsAccess.AccountPermissionsV2Response>;
    AddUser(request: Partial<WsAccess.AddUserRequest>): Promise<WsAccess.AddUserResponse>;
    AddView(request: Partial<WsAccess.AddViewRequest>): Promise<WsAccess.AddViewResponse>;
    AddViewColumn(request: Partial<WsAccess.AddViewColumnRequest>): Promise<WsAccess.AddViewColumnResponse>;
    AddViewMember(request: Partial<WsAccess.AddViewMemberRequest>): Promise<WsAccess.AddViewMemberResponse>;
    ClearPermissionsCache(request: Partial<WsAccess.ClearPermissionsCacheRequest>): Promise<WsAccess.ClearPermissionsCacheResponse>;
    DeleteView(request: Partial<WsAccess.DeleteViewRequest>): Promise<WsAccess.DeleteViewResponse>;
    DeleteViewColumn(request: Partial<WsAccess.DeleteViewColumnRequest>): Promise<WsAccess.DeleteViewColumnResponse>;
    DeleteViewMember(request: Partial<WsAccess.DeleteViewMemberRequest>): Promise<WsAccess.DeleteViewMemberResponse>;
    DisableScopeScans(request: Partial<WsAccess.DisableScopeScansRequest>): Promise<WsAccess.DisableScopeScansResponse>;
    EnableScopeScans(request: Partial<WsAccess.EnableScopeScansRequest>): Promise<WsAccess.EnableScopeScansResponse>;
    FilePermission(request: Partial<WsAccess.FilePermissionRequest>): Promise<WsAccess.FilePermissionResponse>;
    GroupAction(request: Partial<WsAccess.GroupActionRequest>): Promise<WsAccess.GroupActionResponse>;
    GroupAdd(request: Partial<WsAccess.GroupAddRequest>): Promise<WsAccess.GroupAddResponse>;
    GroupEdit(request: Partial<WsAccess.GroupEditRequest>): Promise<WsAccess.GroupEditResponse>;
    GroupMemberEdit(request: Partial<WsAccess.GroupMemberEditRequest>): Promise<WsAccess.GroupMemberEditResponse>;
    GroupMemberEditInput(request: Partial<WsAccess.GroupMemberEditInputRequest>): Promise<WsAccess.GroupMemberEditInputResponse>;
    GroupMemberQuery(request: Partial<WsAccess.GroupMemberQueryRequest>): Promise<WsAccess.GroupMemberQueryResponse>;
    GroupQuery(request: Partial<WsAccess.GroupQueryRequest>): Promise<WsAccess.GroupQueryResponse>;
    Groups(request: Partial<WsAccess.GroupRequest>): Promise<WsAccess.GroupResponse>;
    PermissionAction(request: Partial<WsAccess.PermissionActionRequest>): Promise<WsAccess.PermissionActionResponse>;
    Permissions(request: Partial<WsAccess.BasednsRequest>): Promise<WsAccess.BasednsResponse>;
    PermissionsReset(request: Partial<WsAccess.PermissionsResetRequest>): Promise<WsAccess.PermissionsResetResponse>;
    Ping(request: Partial<WsAccess.ws_accessPingRequest>): Promise<WsAccess.ws_accessPingResponse>;
    QueryScopeScansEnabled(request: Partial<WsAccess.QueryScopeScansEnabledRequest>): Promise<WsAccess.QueryScopeScansEnabledResponse>;
    QueryUserViewColumns(request: Partial<WsAccess.QueryUserViewColumnsRequest>): Promise<WsAccess.QueryUserViewColumnsResponse>;
    QueryViewColumns(request: Partial<WsAccess.QueryViewColumnsRequest>): Promise<WsAccess.QueryViewColumnsResponse>;
    QueryViewMembers(request: Partial<WsAccess.QueryViewMembersRequest>): Promise<WsAccess.QueryViewMembersResponse>;
    QueryViews(request: Partial<WsAccess.QueryViewsRequest>): Promise<WsAccess.QueryViewsResponse>;
    ResourceAdd(request: Partial<WsAccess.ResourceAddRequest>): Promise<WsAccess.ResourceAddResponse>;
    ResourceDelete(request: Partial<WsAccess.ResourceDeleteRequest>): Promise<WsAccess.ResourceDeleteResponse>;
    ResourcePermissionQuery(request: Partial<WsAccess.ResourcePermissionQueryRequest>): Promise<WsAccess.ResourcePermissionQueryResponse>;
    ResourcePermissions(request: Partial<WsAccess.ResourcePermissionsRequest>): Promise<WsAccess.ResourcePermissionsResponse>;
    ResourceQuery(request: Partial<WsAccess.ResourceQueryRequest>): Promise<WsAccess.ResourceQueryResponse>;
    Resources(request: Partial<WsAccess.ResourcesRequest>): Promise<WsAccess.ResourcesResponse>;
    UserAccountExport(request: Partial<WsAccess.UserAccountExportRequest>): Promise<WsAccess.UserAccountExportResponse>;
    UserAction(request: Partial<WsAccess.UserActionRequest>): Promise<WsAccess.UserActionResponse>;
    UserEdit(request: Partial<WsAccess.UserEditRequest>): Promise<WsAccess.UserEditResponse>;
    UserGroupEdit(request: Partial<WsAccess.UserGroupEditRequest>): Promise<WsAccess.UserGroupEditResponse>;
    UserGroupEditInput(request: Partial<WsAccess.UserGroupEditInputRequest>): Promise<WsAccess.UserGroupEditInputResponse>;
    UserInfoEdit(request: Partial<WsAccess.UserInfoEditRequest>): Promise<WsAccess.UserInfoEditResponse>;
    UserInfoEditInput(request: Partial<WsAccess.UserInfoEditInputRequest>): Promise<WsAccess.UserInfoEditInputResponse>;
    UserPosix(request: Partial<WsAccess.UserPosixRequest>): Promise<WsAccess.UserPosixResponse>;
    UserPosixInput(request: Partial<WsAccess.UserPosixInputRequest>): Promise<WsAccess.UserPosixInputResponse>;
    UserQuery(request: Partial<WsAccess.UserQueryRequest>): Promise<WsAccess.UserQueryResponse>;
    UserResetPass(request: Partial<WsAccess.UserResetPassRequest>): Promise<WsAccess.UserResetPassResponse>;
    UserResetPassInput(request: Partial<WsAccess.UserResetPassInputRequest>): Promise<WsAccess.UserResetPassInputResponse>;
    UserSudoers(request: Partial<WsAccess.UserSudoersRequest>): Promise<WsAccess.UserSudoersResponse>;
    UserSudoersInput(request: Partial<WsAccess.UserSudoersInputRequest>): Promise<WsAccess.UserSudoersInputResponse>;
    Users(request: Partial<WsAccess.UserRequest>): Promise<WsAccess.UserResponse>;
}
