import { Context } from "hono";
import { Bindings, Variables } from "../types";
import { User } from "@authhero/adapter-interfaces";
import { OnExecuteCredentialsExchangeAPI } from "../types/Hooks";
export declare function isTemplateHook(hook: any): hook is {
    template_id: string;
    enabled: boolean;
};
/**
 * Handles a template hook by executing the corresponding pre-defined hook function.
 * Template hooks map to code-level pre-defined hooks that can be enabled per-tenant
 * through the admin UI without requiring server configuration changes.
 *
 * `metadata` carries the configuring tenant's options for the template — see
 * `hookBaseCommonProperties.metadata` in the adapter-interfaces Hook schema.
 * Each template that takes options reads its keys from here.
 */
export declare function handleTemplateHook(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, template_id: string, user: User, metadata?: Record<string, unknown>): Promise<User>;
/**
 * Handles a credentials-exchange template hook by executing the corresponding
 * pre-defined hook function that sets custom claims on tokens.
 */
export declare function handleCredentialsExchangeTemplateHook(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, template_id: string, user: User, api: OnExecuteCredentialsExchangeAPI): Promise<void>;
