/**
 * Admin RPC action handlers — admin-only operations exposed on the JSON-RPC surface.
 *
 * Four action categories:
 *
 * - Account management: `admin_account_list`, `admin_session_list`,
 *   `admin_session_revoke_all`, `admin_token_revoke_all`.
 * - Audit log reads: `audit_log_list`, `audit_log_role_grant_history`.
 * - Invite CRUD: `invite_create`, `invite_list`, `invite_delete`.
 * - App settings: `app_settings_get`, `app_settings_update`. The update
 *   handler writes the `app_settings` row in the database; signup reads the
 *   `open_signup` toggle fresh from that row on every request, so no
 *   in-memory state is shared between this surface and signup.
 *
 * The action specs themselves live in `auth/admin_action_specs.ts`. Mutations
 * emit matching audit events via `deps.audit.emit`.
 *
 * Authorization is declared at the spec level (`auth: {role: 'admin'}`) so
 * the RPC dispatcher enforces it before the handler runs and the generated
 * surface accurately reports the requirement. `role_grant_revoke` in
 * `auth/role_grant_offer_actions.ts` uses the same spec-level pattern even though its
 * sibling methods are authenticated-but-not-admin — the dispatcher checks
 * auth per-spec, so mixed-auth endpoints compose cleanly. Handler-level
 * gates are reserved for input-dependent elevation (e.g.
 * `role_grant_offer_list`/`_history` elevate to admin only when the caller
 * passes an `account_id` other than their own — an input-dependent check
 * the spec can't express).
 *
 * @module
 */
import { type RpcAction } from '../actions/action_rpc.js';
import type { ConnectionCloser } from '../actions/connection_closer.js';
import { type RoleSchemaResult } from './role_schema.js';
import type { RouteFactoryDeps } from './deps.js';
/** Options for `create_admin_actions`. */
export interface AdminActionOptions {
    /**
     * Role schema result from `create_role_schema()`. Defaults to builtin
     * roles only. Used to derive `grantable_roles` (the subset whose
     * `RoleSpec.grant_paths` includes `'admin'`) returned by
     * `admin_account_list`.
     */
    roles?: RoleSchemaResult;
    /**
     * Live-connection closer — when set, `admin_session_revoke_all` and
     * `admin_token_revoke_all` handlers eagerly close affected WebSocket
     * sockets for the target account BEFORE emitting the corresponding
     * audit event. Mirrors the self-service surface (see
     * `AccountActionOptions.connection_closer`). `BackendWebsocketTransport`
     * satisfies this interface structurally. When absent, only the
     * listener-based close (`transports_ws_auth_guard`) runs.
     */
    connection_closer?: ConnectionCloser | null;
}
/**
 * Create the admin-only RPC actions.
 *
 * @param deps - `RouteFactoryDeps` (`log`, `audit`, …). `log` drives RPC-
 *   internal error logging; `audit.emit` writes audit rows via the captured
 *   pool. The bound emitter encapsulates `on_audit_event` fan-out and the
 *   optional `AuditLogConfig`.
 * @param options - role schema for `grantable_roles` derivation
 * @returns the `RpcAction` array to spread into a `create_rpc_endpoint` call
 */
export declare const create_admin_actions: (deps: Pick<RouteFactoryDeps, "log" | "audit">, options?: AdminActionOptions) => Array<RpcAction>;
//# sourceMappingURL=admin_actions.d.ts.map