import Resource from "./resource.js";
import type RoleRepresentation from "../defs/roleRepresentation.js";
import type UserRepresentation from "../defs/userRepresentation.js";
import type { KeycloakAdminClient } from "../client.js";
import type { ManagementPermissionReference } from "../defs/managementPermissionReference.js";
export interface RoleQuery {
    first?: number;
    max?: number;
    search?: string;
    briefRepresentation?: boolean;
}
export declare class Roles extends Resource<{
    realm?: string;
}> {
    /**
     * Realm roles
     */
    find: (payload?: (RoleQuery & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation[]>;
    create: (payload?: (RoleRepresentation & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<{
        roleName: string;
    }>;
    /**
     * Roles by name
     */
    findOneByName: (payload?: ({
        name: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation | undefined>;
    updateByName: (query: {
        name: string;
    } & {
        realm?: string | undefined;
    }, payload: RoleRepresentation) => Promise<void>;
    delByName: (payload?: ({
        name: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<void>;
    findUsersWithRole: (payload?: ({
        name: string;
        first?: number | undefined;
        max?: number | undefined;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<UserRepresentation[]>;
    /**
     * Roles by id
     */
    findOneById: (payload?: ({
        id: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation | undefined>;
    createComposite: (query: {
        roleId: string;
    } & {
        realm?: string | undefined;
    }, payload: RoleRepresentation[]) => Promise<void>;
    getCompositeRoles: (payload?: ({
        id: string;
        search?: string | undefined;
        first?: number | undefined;
        max?: number | undefined;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation[]>;
    getCompositeRolesForRealm: (payload?: ({
        id: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation[]>;
    getCompositeRolesForClient: (payload?: ({
        id: string;
        clientId: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<RoleRepresentation[]>;
    delCompositeRoles: (query: {
        id: string;
    } & {
        realm?: string | undefined;
    }, payload: RoleRepresentation[]) => Promise<void>;
    updateById: (query: {
        id: string;
    } & {
        realm?: string | undefined;
    }, payload: RoleRepresentation) => Promise<void>;
    delById: (payload?: ({
        id: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<void>;
    /**
     * Authorization permissions
     */
    updatePermission: (query: {
        id: string;
    } & {
        realm?: string | undefined;
    }, payload: ManagementPermissionReference) => Promise<ManagementPermissionReference>;
    listPermissions: (payload?: ({
        id: string;
    } & {
        realm?: string | undefined;
    }) | undefined, options?: Pick<import("./agent.js").RequestArgs, "catchNotFound"> | undefined) => Promise<ManagementPermissionReference>;
    constructor(client: KeycloakAdminClient);
}
