import type { LTApiResult } from '../types/sdk'; /** * List all distinct role names in the system. * * @returns `{ status: 200, data: { roles: string[] } }` on success */ export declare function listRoles(): Promise; /** * List all roles with their full details (member counts, escalation chains, etc.). * * @returns `{ status: 200, data: { roles: RoleDetail[] } }` on success */ export declare function listRolesWithDetails(): Promise; /** * Create a new role. Requires admin privileges. * * The role name is trimmed, lowercased, and validated against the pattern * `^[a-z][a-z0-9_-]*$` (must start with a letter, then lowercase alphanumerics, * hyphens, or underscores). * * @param input.role — the role name to create * @returns `{ status: 201, data: { role: string } }` on success */ export declare function createRole(input: { role: string; }): Promise; /** * Retrieve all escalation chains across all roles. * * @returns `{ status: 200, data: { chains: EscalationChain[] } }` on success */ export declare function getEscalationChains(): Promise; /** * Add an escalation chain link from one role to another. Requires admin privileges. * * @param input.source_role — the role that escalates from * @param input.target_role — the role that receives the escalation * @returns `{ status: 201, data: { source_role, target_role } }` on success */ export declare function addEscalationChain(input: { source_role: string; target_role: string; }): Promise; /** * Remove an escalation chain link between two roles. Requires admin privileges. * * @param input.source_role — the role that escalates from * @param input.target_role — the role that receives the escalation * @returns `{ status: 200, data: { removed: true } }` on success, or `{ status: 404 }` if not found */ export declare function removeEscalationChain(input: { source_role: string; target_role: string; }): Promise; /** * Get all escalation target roles for a given source role. * * @param input.role — the source role to look up escalation targets for * @returns `{ status: 200, data: { targets: string[] } }` on success */ export declare function getEscalationTargets(input: { role: string; }): Promise; /** * Replace all escalation targets for a role with a new set. Requires admin privileges. * * Removes all existing escalation links from the source role and creates new * ones for each target in the provided array. * * @param input.role — the source role whose targets are being replaced * @param input.targets — array of target role names to set as the new escalation targets * @returns `{ status: 200, data: { role, targets } }` on success */ export declare function replaceEscalationTargets(input: { role: string; targets: string[]; }): Promise; /** * Delete a role from the system. Requires admin privileges. * * Returns 409 if the role cannot be deleted (e.g., still assigned to users). * * @param input.role — the role name to delete * @returns `{ status: 200, data: { deleted: true } }` on success, or `{ status: 409 }` if deletion blocked */ export declare function deleteRole(input: { role: string; }): Promise;