import NetworkService from "../../../app/service/network/NetworkService";
import SecurityService from "../../../app/service/security/SecurityService";
import { CommandBus } from "../../../core/command/CommandBus";
import { QueryBus } from "../../../core/query/QueryBus";
import { MirrorNodeAdapter } from "../../out/mirror/MirrorNodeAdapter";
import GetRoleCountForRequest from "../request/security/roles/GetRoleCountForRequest";
import GetRoleMemberCountRequest from "../request/security/roles/GetRoleMemberCountRequest";
import GetRoleMembersRequest from "../request/security/roles/GetRoleMembersRequest";
import GetRolesForRequest from "../request/security/roles/GetRolesForRequest";
import RoleRequest from "../request/security/roles/RoleRequest";
import ApplyRolesRequest from "../request/security/roles/ApplyRolesRequest";
interface IRole {
    hasRole(request: RoleRequest): Promise<boolean>;
    grantRole(request: RoleRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    revokeRole(request: RoleRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getRoleCountFor(request: GetRoleCountForRequest): Promise<number>;
    getRolesFor(request: GetRolesForRequest): Promise<string[]>;
    getRoleMemberCount(request: GetRoleMemberCountRequest): Promise<number>;
    getRoleMembers(request: GetRoleMembersRequest): Promise<string[]>;
    applyRoles(request: ApplyRolesRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
}
declare class RoleInPort implements IRole {
    private readonly queryBus;
    private readonly commandBus;
    private readonly securityService;
    private readonly networkService;
    private readonly mirrorNode;
    constructor(queryBus?: QueryBus, commandBus?: CommandBus, securityService?: SecurityService, networkService?: NetworkService, mirrorNode?: MirrorNodeAdapter);
    hasRole(request: RoleRequest): Promise<boolean>;
    grantRole(request: RoleRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    revokeRole(request: RoleRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
    getRoleCountFor(request: GetRoleCountForRequest): Promise<number>;
    getRolesFor(request: GetRolesForRequest): Promise<string[]>;
    getRoleMemberCount(request: GetRoleMemberCountRequest): Promise<number>;
    getRoleMembers(request: GetRoleMembersRequest): Promise<string[]>;
    applyRoles(request: ApplyRolesRequest): Promise<{
        payload: boolean;
        transactionId: string;
    }>;
}
declare const Role: RoleInPort;
export default Role;
