import type { ZodSchema } from 'zod/v4';
import type { DeserializedMessage, RequestContext } from '../types.ts';
export type KafkaHandler<MessageValue extends object, ExecutionContext, BatchProcessingEnabled extends boolean = false> = (message: BatchProcessingEnabled extends false ? DeserializedMessage<MessageValue> : DeserializedMessage<MessageValue>[], context: ExecutionContext, requestContext: RequestContext) => Promise<void> | void;
export declare class KafkaHandlerConfig<MessageValue extends object, ExecutionContext, BatchProcessingEnabled extends boolean = false> {
    readonly schema: ZodSchema<MessageValue, any>;
    readonly handler: KafkaHandler<MessageValue, ExecutionContext, BatchProcessingEnabled>;
    constructor(schema: ZodSchema<MessageValue, any>, handler: KafkaHandler<MessageValue, ExecutionContext, BatchProcessingEnabled>);
}
export declare class KafkaBatchHandlerConfig<MessageValue extends object, ExecutionContext> extends KafkaHandlerConfig<MessageValue, ExecutionContext, true> {
}
