import type { App } from "../App";
import { type Context, type Env, Hono } from "hono";
import * as middlewares from "../modules/middlewares";
import type { SafeUser } from "../auth";
import type { EntityManager } from "../data";
import { s } from "../core/object/schema";
export type ServerEnv = Env & {
    Variables: {
        app: App;
        auth?: {
            resolved: boolean;
            registered: boolean;
            skip: boolean;
            user?: SafeUser;
        };
        html?: string;
    };
};
export declare class Controller {
    protected middlewares: typeof middlewares;
    protected create(): Hono<ServerEnv>;
    static createServer(): Hono<ServerEnv>;
    getController(): Hono<ServerEnv>;
    protected isJsonRequest(c: Context<ServerEnv>): boolean;
    protected notFound(c: Context<ServerEnv>): Response | Promise<Response>;
    protected getEntitiesEnum(em: EntityManager<any>): s.TString<s.StringSchema>;
}
