import { s } from "bknd/utils";
import { Module } from "../../modules/Module";
export declare const serverConfigSchema: s.ObjectSchema<{
    readonly cors: s.ObjectSchema<{
        readonly origin: s.StringSchema<{
            readonly default: "*";
        }> & {
            readonly default: "*";
        };
        readonly allow_methods: s.ArraySchema<s.StringSchema<{
            readonly enum: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
        }> & {
            readonly enum: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
        }, {
            readonly default: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
            readonly uniqueItems: true;
        }> & {
            readonly default: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
            readonly uniqueItems: true;
        };
        readonly allow_headers: s.ArraySchema<s.StringSchema<s.IStringOptions> & s.IStringOptions, {
            readonly default: readonly ["Content-Type", "Content-Length", "Authorization", "Accept"];
        }> & {
            readonly default: readonly ["Content-Type", "Content-Length", "Authorization", "Accept"];
        };
        readonly allow_credentials: s.Schema<{
            readonly default: true;
        }, boolean, boolean> & {
            readonly default: true;
        };
    }, s.Merge<s.IObjectOptions & {
        additionalProperties: false;
    }>>;
    readonly mcp: s.ObjectSchema<{
        readonly enabled: s.Schema<{
            readonly default: false;
        }, boolean, boolean> & {
            readonly default: false;
        };
        readonly path: s.StringSchema<{
            readonly default: "/api/system/mcp";
        }> & {
            readonly default: "/api/system/mcp";
        };
        readonly logLevel: s.StringSchema<{
            readonly enum: ("debug" | "error" | "info" | "critical" | "warning" | "emergency" | "alert" | "notice")[];
            readonly default: "warning";
        }> & {
            readonly enum: ("debug" | "error" | "info" | "critical" | "warning" | "emergency" | "alert" | "notice")[];
            readonly default: "warning";
        };
    }, s.Merge<s.IObjectOptions & {
        additionalProperties: false;
    }>>;
}, s.Merge<{
    readonly description: "Server configuration";
} & {
    additionalProperties: false;
}>>;
export type AppServerConfig = s.Static<typeof serverConfigSchema>;
export declare class AppServer extends Module<AppServerConfig> {
    getRestrictedPaths(): never[];
    get client(): import("hono").Hono<import("../..").ServerEnv, import("hono/types").BlankSchema, "/">;
    getSchema(): s.ObjectSchema<{
        readonly cors: s.ObjectSchema<{
            readonly origin: s.StringSchema<{
                readonly default: "*";
            }> & {
                readonly default: "*";
            };
            readonly allow_methods: s.ArraySchema<s.StringSchema<{
                readonly enum: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
            }> & {
                readonly enum: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
            }, {
                readonly default: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
                readonly uniqueItems: true;
            }> & {
                readonly default: readonly ["GET", "POST", "PATCH", "PUT", "DELETE"];
                readonly uniqueItems: true;
            };
            readonly allow_headers: s.ArraySchema<s.StringSchema<s.IStringOptions> & s.IStringOptions, {
                readonly default: readonly ["Content-Type", "Content-Length", "Authorization", "Accept"];
            }> & {
                readonly default: readonly ["Content-Type", "Content-Length", "Authorization", "Accept"];
            };
            readonly allow_credentials: s.Schema<{
                readonly default: true;
            }, boolean, boolean> & {
                readonly default: true;
            };
        }, s.Merge<s.IObjectOptions & {
            additionalProperties: false;
        }>>;
        readonly mcp: s.ObjectSchema<{
            readonly enabled: s.Schema<{
                readonly default: false;
            }, boolean, boolean> & {
                readonly default: false;
            };
            readonly path: s.StringSchema<{
                readonly default: "/api/system/mcp";
            }> & {
                readonly default: "/api/system/mcp";
            };
            readonly logLevel: s.StringSchema<{
                readonly enum: ("debug" | "error" | "info" | "critical" | "warning" | "emergency" | "alert" | "notice")[];
                readonly default: "warning";
            }> & {
                readonly enum: ("debug" | "error" | "info" | "critical" | "warning" | "emergency" | "alert" | "notice")[];
                readonly default: "warning";
            };
        }, s.Merge<s.IObjectOptions & {
            additionalProperties: false;
        }>>;
    }, s.Merge<{
        readonly description: "Server configuration";
    } & {
        additionalProperties: false;
    }>>;
    build(): Promise<void>;
    toJSON(secrets?: boolean): {
        mcp: {
            enabled: boolean;
            path: string;
            logLevel: "debug" | "error" | "info" | "critical" | "warning" | "emergency" | "alert" | "notice";
        };
        cors: {
            origin: string;
            allow_methods: ("GET" | "POST" | "PATCH" | "PUT" | "DELETE")[];
            allow_headers: string[];
            allow_credentials: boolean;
        };
    };
}
