import { HttpBaseClient } from '../HttpClient'; import { Constructor, FetchOptions, HttpRolePrivilegeReq, HttpRoleDescribeResponse, HttpBaseResponse, HttpRoleBaseReq } from '../types'; /** * * @param {Constructor} Base - The base class to be extended. * @returns {class} - The extended class with additional methods for collection management. * * @method listRoles - Lists all roles in the system. * @method describeRole - Describes a role. * @method createRole - Creates a new role. * @method dropRole - Deletes a role. * @method grantPrivilegeToRole - Grants a privilege to a role. * @method revokePrivilegeFromRole - Revokes a privilege from a role. */ export declare function Role>(Base: T): { new (...args: any[]): { readonly rolePrefix: string; listRoles(options?: FetchOptions): Promise>; describeRole(params: HttpRoleBaseReq, options?: FetchOptions): Promise; createRole(params: HttpRoleBaseReq, options?: FetchOptions): Promise>; dropRole(params: HttpRoleBaseReq, options?: FetchOptions): Promise>; grantPrivilegeToRole(params: HttpRolePrivilegeReq, options?: FetchOptions): Promise>; revokePrivilegeFromRole(params: HttpRolePrivilegeReq, options?: FetchOptions): Promise>; config: import("../types").HttpClientConfig; readonly baseURL: string; readonly authorization: string; readonly database: string; readonly timeout: number; readonly headers: { Authorization: string; Accept: string; ContentType: string; 'Accept-Type-Allow-Int64': string; }; readonly fetch: ((input: any, init?: any) => Promise) | typeof fetch; POST(url: string, data?: Record, options?: FetchOptions | undefined): Promise; GET(url: string, params?: Record, options?: FetchOptions | undefined): Promise; }; } & T;