import type { ToolDef } from './provider-base.js';
import type { ToolDispatcher } from './tool-dispatcher.js';
export declare function isExecToolName(name: string): boolean;
export declare function getExecTools(): ToolDef[];
export interface ExecContext {
    cwd: string;
    /** v1.2.97 — when present, every spawned child gets IMHUB_RPC_SOCKET
     *  and IMHUB_RPC_TOKEN env vars so a bgjob-launched Python (or any
     *  language) script can call back into agim's tool surface via the
     *  local RPC server. The token is bound to this exact RunContext so
     *  a worker can only drive its own IM thread. Caller (native/index.ts)
     *  mints a token at turn start; exec-dispatcher injects it on every
     *  spawn under the same turn. Optional — leaving it unset just means
     *  the bgjob child can't call back (the existing v1.2.93 SOP still
     *  works, just without the RPC convenience). */
    rpcCtx?: {
        platform: string;
        channelId: string;
        threadId: string;
        userId: string;
    };
}
export declare function buildExecDispatcher(ctx: ExecContext): ToolDispatcher;
export declare function isBgjobInvocation(cmd: string): boolean;
//# sourceMappingURL=exec-dispatcher.d.ts.map