import type { McpProfile } from './transport.ts';
export declare function _setGetConfigObjForTest(fn: () => unknown): void;
export declare function _restoreGetConfigObj(): void;
interface McpProfileConfig {
    mountPath?: string;
}
interface FullConfig {
    mcp?: {
        operations?: McpProfileConfig;
        application?: McpProfileConfig;
        session?: unknown;
    };
}
interface FastifyLikeHost {
    post: (path: string, ...rest: unknown[]) => unknown;
    get: (path: string, ...rest: unknown[]) => unknown;
    delete: (path: string, ...rest: unknown[]) => unknown;
}
export interface RegisterMcpProfileArgs {
    profile: McpProfile;
    host: FastifyLikeHost;
    config: FullConfig;
    routeOptions?: Record<string, unknown>;
}
/**
 * Fastify-side registration. Used by `server/operationsServer.ts` for the
 * operations profile. Idempotent through the host's own route table.
 */
export declare function registerMcpProfile({ profile, host, config, routeOptions }: RegisterMcpProfileArgs): void;
interface ScopeLike {
    server: {
        http: (handler: unknown, options: Record<string, unknown>) => unknown;
    };
}
/**
 * Trusted-Resource-Plugin entry point for the application profile. The
 * component loader invokes this with the runtime `Scope` when the root
 * config contains a top-level `mcp:` block. We register the handler iff the
 * `application` sub-block is also present.
 *
 * Idempotent — repeated invocations no-op via `applicationStarted`. This
 * matches REST's pattern at `server/REST.ts:283-303`.
 */
export declare function handleApplication(scope: ScopeLike): void;
/** Test seam: reset the module-level guard so tests can re-invoke handleApplication. */
export declare function _resetApplicationStartedForTest(): void;
export {};
