import * as z from 'zod';
import { Configuration, ServiceCollection } from 'botbuilder-dialogs-adaptive-runtime-core';
/**
 * Definition of a BotComponent that allows registration of services, custom actions, memory scopes and adapters.
 *
 * To make your components available to the system you derive from BotComponent and register services to add functionality.
 * These components then are consumed in appropriate places by the systems that need them. When using Composer, configureServices
 * gets called automatically on the components by the bot runtime, as long as the components are registered in the configuration.
 */
export declare abstract class BotComponent {
    static z: z.ZodType<BotComponent, z.ZodTypeDef>;
    abstract configureServices(services: ServiceCollection, configuration: Configuration): void;
}
/**
 * @internal
 *
 * @deprecated Use `BotComponent.z.parse()` instead.
 */
export declare function assertBotComponent(val: unknown, ..._args: unknown[]): asserts val is BotComponent;
//# sourceMappingURL=botComponent.d.ts.map