import { Context } from "hono";
import { DataAdapters } from "@authhero/adapter-interfaces";
import { Bindings, Variables } from "../types";
import { EnrichedClient } from "../helpers/client";
/**
 * Validates if an email can be used for signup based on client settings.
 * This is a lightweight check that can be done early (e.g., on identifier page)
 * without committing to creating a user.
 *
 * Supports code-based hooks via onExecuteValidateRegistrationUsername
 *
 * @returns An object with `allowed` boolean and optional `reason` string
 */
export declare function validateSignupEmail(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, client: EnrichedClient, data: DataAdapters, email: string, connection?: string, options?: {
    identifierPreflight?: boolean;
}): Promise<{
    allowed: boolean;
    reason?: string;
}>;
/**
 * Pre-user signup hook that runs RIGHT BEFORE user creation.
 * This runs for ALL signup methods (email/password, code, social, etc.)
 * and enforces signup policies and invokes webhooks.
 *
 * This hook is called from createUserHooks and will throw an HTTPException
 * if the signup should be blocked.
 */
export declare function preUserSignupHook(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, client: EnrichedClient, data: DataAdapters, email: string, connection?: string): Promise<void>;
