import type { App } from "../../App";
import { type McpServer } from "bknd/utils";
import { Controller } from "../../modules/Controller";
import { type ModuleConfigs, type ModuleSchemas, type ModuleKey } from "../../modules/ModuleManager";
import type { TPermission } from "../../auth/authorize/Permission";
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;
    readonly: boolean;
    config: ModuleConfigs;
    permissions: TPermission[];
};
export declare class SystemController extends Controller {
    private readonly app;
    _mcpServer: McpServer | null;
    constructor(app: App);
    get ctx(): import("../..").ModuleBuildContext;
    register(app: App): void;
    private registerConfigController;
    getController(): import("hono/hono-base").HonoBase<import("../..").ServerEnv, import("hono/types").BlankSchema, "/">;
    registerMcp(): void;
}
