import { Context } from "hono";
import { Bindings, Variables } from "../../types";
/**
 * Build the `token` API surface that user-authored hook code receives. A thin
 * wrapper over `createServiceToken` that hides the underlying context so the
 * hook runtime cannot mint tokens for arbitrary tenants.
 *
 * When `clientId` is provided, the token is grant-bounded to that DB-registered
 * M2M client (the requested `scope`/`audience` must be authorized by an
 * existing `client_grant`). Without `clientId`, falls back to the legacy
 * `auth-service` token bound to the tenant's default audience.
 */
export declare function createTokenAPI(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, tenant_id: string): {
    createServiceToken: (params: {
        scope: string;
        clientId?: string;
        audience?: string;
        expiresInSeconds?: number;
        customClaims?: Record<string, unknown>;
    }) => Promise<string>;
};
