import type { LTApiResult, LTApiAuth } from '../types/sdk'; /** * List all bot accounts with pagination. * * @param input.limit — maximum number of bots to return (default 50) * @param input.offset — number of bots to skip for pagination (default 0) * @returns `{ status: 200, data: Bot[] }` paginated list of bots */ export declare function listBots(input: { limit?: number; offset?: number; }): Promise; /** * Retrieve a single bot account by ID. * * @param input.id — unique identifier of the bot * @returns `{ status: 200, data: Bot }` the bot record, or 404 if not found */ export declare function getBot(input: { id: string; }): Promise; /** * Create a new bot account with optional roles. * * Validates that each provided role has a valid type (superadmin, admin, member). * Returns 409 if a bot with the same name already exists. * * @param input.name — unique bot name (required) * @param input.description — optional text description of the bot * @param input.display_name — optional human-friendly display name * @param input.roles — optional list of roles to assign at creation, each with a role name and type * @param auth — authenticated user context; userId is recorded as the bot creator * @returns `{ status: 201, data: Bot }` the newly created bot record */ export declare function createBot(input: { name: string; description?: string; display_name?: string; roles?: { role: string; type: string; }[]; }, auth?: LTApiAuth): Promise; /** * Update mutable fields on an existing bot account. * * @param input.id — unique identifier of the bot to update * @param input.display_name — new display name * @param input.description — new description * @param input.status — new status value * @returns `{ status: 200, data: Bot }` the updated bot record, or 404 if not found */ export declare function updateBot(input: { id: string; display_name?: string; description?: string; status?: string; }): Promise; /** * Delete a bot account by ID. * * @param input.id — unique identifier of the bot to delete * @returns `{ status: 200, data: { deleted: true } }` on success, or 404 if not found */ export declare function deleteBot(input: { id: string; }): Promise; /** * List all roles assigned to a bot account. * * @param input.id — unique identifier of the bot * @returns `{ status: 200, data: { roles: Role[] } }` the bot's roles, or 404 if bot not found */ export declare function getBotRoles(input: { id: string; }): Promise; /** * Assign a role to a bot account. * * Validates that the role type is one of superadmin, admin, or member. * * @param input.id — unique identifier of the bot * @param input.role — role name to assign * @param input.type — role type (superadmin, admin, or member) * @returns `{ status: 201, data: Role }` the newly assigned role, or 404 if bot not found */ export declare function addBotRole(input: { id: string; role: string; type: string; }): Promise; /** * Remove a role from a bot account. * * @param input.id — unique identifier of the bot * @param input.role — role name to remove * @returns `{ status: 200, data: { removed: true } }` on success, or 404 if role not found */ export declare function removeBotRole(input: { id: string; role: string; }): Promise; /** * List all API keys for a bot account. * * @param input.id — unique identifier of the bot * @returns `{ status: 200, data: { keys: ApiKey[] } }` the bot's API keys, or 404 if bot not found */ export declare function listBotKeys(input: { id: string; }): Promise; /** * Create a new API key for a bot account. * * Returns 409 if an API key with the same name already exists for this bot. * * @param input.id — unique identifier of the bot * @param input.name — human-readable name for the API key (required) * @param input.scopes — optional list of permission scopes to restrict the key * @param input.expires_at — optional ISO 8601 expiration timestamp * @returns `{ status: 201, data: ApiKey }` the newly created API key (includes the secret) */ export declare function createBotKey(input: { id: string; name: string; scopes?: string[]; expires_at?: string; }): Promise; /** * Revoke an existing bot API key. * * @param input.keyId — unique identifier of the API key to revoke * @returns `{ status: 200, data: { revoked: true } }` on success, or 404 if key not found */ export declare function revokeBotKey(input: { keyId: string; }): Promise;