import { MiddlewareHandler } from "hono";

//#region src/middleware/inherited-auth.d.ts

/**
 * Documentation-only permission marker for routes whose authentication
 * is already enforced by a parent `app.use()` in createApp.ts.
 *
 * This does NOT perform any auth check itself — it only registers
 * x-authz metadata so the OpenAPI spec accurately reflects the
 * auth requirement.
 *
 * Use this when the route lives under a path that already has
 * middleware applied (e.g. `/manage/tenants/*` has `manageBearerOrSessionAuth`).
 */
declare const inheritedAuth: (meta: {
  resource?: string;
  permission?: string;
  description: string;
}) => MiddlewareHandler;
/**
 * Marker for routes under `/manage/tenants/*` whose auth is handled
 * by `manageBearerOrSessionAuth()` in createApp.ts.
 *
 * No auth check runs at the route level — this is purely for OpenAPI documentation.
 */
declare const inheritedManageTenantAuth: () => MiddlewareHandler;
/**
 * Marker for routes under `/run/*` whose auth is handled
 * by `runApiKeyAuth()` in createApp.ts.
 *
 * No auth check runs at the route level — this is purely for OpenAPI documentation.
 */
declare const inheritedRunApiKeyAuth: () => MiddlewareHandler;
/**
 * Marker for routes under `/work-apps/*` whose auth is handled
 * by `workAppsAuth()` in createApp.ts.
 *
 * No auth check runs at the route level — this is purely for OpenAPI documentation.
 */
declare const inheritedWorkAppsAuth: () => MiddlewareHandler;
//#endregion
export { inheritedAuth, inheritedManageTenantAuth, inheritedRunApiKeyAuth, inheritedWorkAppsAuth };