import type { DaoCoreConfig } from "../../config/types.daocore.js";
import type { GetReplyOptions } from "../get-reply-options.types.js";
import type { FinalizedMsgContext, MsgContext } from "../templating.js";
import type { DispatchFromConfigResult } from "./dispatch-from-config.types.js";
import type { GetReplyFromConfig } from "./get-reply.types.js";
import type { ReplyDispatcherOptions, ReplyDispatcherWithTypingOptions } from "./reply-dispatcher.js";
type DispatchReplyContext = MsgContext | FinalizedMsgContext;
type DispatchReplyOptions = Omit<GetReplyOptions, "onBlockReply">;
export type DispatchReplyWithBufferedBlockDispatcher = (params: {
    ctx: DispatchReplyContext;
    cfg: DaoCoreConfig;
    dispatcherOptions: ReplyDispatcherWithTypingOptions;
    replyOptions?: DispatchReplyOptions;
    replyResolver?: GetReplyFromConfig;
}) => Promise<DispatchFromConfigResult>;
export type DispatchReplyWithDispatcher = (params: {
    ctx: DispatchReplyContext;
    cfg: DaoCoreConfig;
    dispatcherOptions: ReplyDispatcherOptions;
    replyOptions?: DispatchReplyOptions;
    replyResolver?: GetReplyFromConfig;
}) => Promise<DispatchFromConfigResult>;
export {};
