import type { GatewayEventDescriptor, GatewayEventListOptions, GatewayMethodDescriptor, GatewayMethodHandler, GatewayMethodInvocation, GatewayMethodListOptions } from './method-catalog-shared.js';
export type { GatewayEventDescriptor, GatewayEventListOptions, GatewayEventTransport, GatewayHttpBinding, GatewayMethodAccess, GatewayMethodDescriptor, GatewayMethodHandler, GatewayMethodInvocation, GatewayMethodInvocationContext, GatewayMethodListOptions, GatewayMethodSource, GatewayMethodTransport, } from './method-catalog-shared.js';
export declare class GatewayMethodCatalog {
    private readonly methods;
    private readonly events;
    constructor(options?: {
        readonly includeBuiltins?: boolean;
    });
    register(descriptor: GatewayMethodDescriptor, handler?: GatewayMethodHandler, options?: {
        readonly replace?: boolean;
    }): () => void;
    registerEvent(descriptor: GatewayEventDescriptor, options?: {
        readonly replace?: boolean;
    }): () => void;
    unregister(id: string): boolean;
    unregisterEvent(id: string): boolean;
    clearPluginMethods(pluginId: string): void;
    list(options?: GatewayMethodListOptions): GatewayMethodDescriptor[];
    listEvents(options?: GatewayEventListOptions): GatewayEventDescriptor[];
    get(id: string): GatewayMethodDescriptor | null;
    getEvent(id: string): GatewayEventDescriptor | null;
    hasHandler(id: string): boolean;
    findByHttpBinding(method: string, pathname: string): GatewayMethodDescriptor | null;
    getAllScopes(options?: {
        readonly includeWrite?: boolean;
    }): string[];
    invoke(id: string, invocation: GatewayMethodInvocation): Promise<unknown>;
}
//# sourceMappingURL=method-catalog.d.ts.map