import type { App } from "../../App";
import { Controller } from "../../modules/Controller";
import { type ModuleConfigs, type ModuleSchemas, type ModuleKey } from "../../modules/ModuleManager";
export type ConfigUpdate<Key extends ModuleKey = ModuleKey> = {
    success: true;
    module: Key;
    config: ModuleConfigs[Key];
};
export type ConfigUpdateResponse<Key extends ModuleKey = ModuleKey> = ConfigUpdate<Key> | {
    success: false;
    type: "type-invalid" | "error" | "unknown";
    error?: any;
    errors?: any;
};
export type SchemaResponse = {
    version: string;
    schema: ModuleSchemas;
    config: ModuleConfigs;
    permissions: string[];
};
export declare class SystemController extends Controller {
    private readonly app;
    constructor(app: App);
    get ctx(): import("../../modules/ModuleManager").ModuleBuildContext;
    private registerConfigController;
    getController(): import("hono/hono-base").HonoBase<import("hono").Env & {
        Variables: {
            app: App;
            auth?: {
                resolved: boolean;
                registered: boolean;
                skip: boolean;
                user?: import("../../auth").SafeUser;
            };
            html?: string;
        };
    }, import("hono/types").BlankSchema, "/">;
}
