import { JDBus } from "../bus"; import { JDEvent } from "../event"; import { JDService } from "../service"; import { JDServiceClient } from "../serviceclient"; /** * A service role assigment * @category Clients */ export interface Role { /** * Identifier of the bound device */ deviceId: string; /** * Service class bound, for sanity check */ serviceClass: number; /** * Service index bound */ serviceIndex: number; /** * Role name */ name: string; /** * Query argument (optional) */ query?: string; } /** * Resolves the JDom service instance for this role. * @param bus * @param role * @returns */ export declare function resolveRoleService(bus: JDBus, role: Role): JDService; /** * A client for the role manager service * @category Clients */ export declare class RoleManagerClient extends JDServiceClient { private _roles; private _needRefresh; private _lastRefreshAttempt; readonly changeEvent: JDEvent; readonly startRefreshRoles: () => void; constructor(service: JDService); /** * @hidden */ toString(): string; private handleSelfAnnounce; get roles(): Role[]; private handleChange; private refreshRoles; private collectRoles; private assignRoles; private assignRole; private clearRoles; hasRoleForService(service: JDService): boolean; compatibleRoles(service: JDService): Role[]; role(name: string): Role; setRole(service: JDService, name: string): Promise; allRolesBound(): boolean; startSimulators(): void; } //# sourceMappingURL=rolemanagerclient.d.ts.map