import type { PortableTool } from "../skills/portable-tool.js";
import { type TaskToolHooks } from "../skills/tools/task-tool.js";
import { type AskUserQuestion } from "../skills/tools/ask-user-tool.js";
import { type ExecProgress } from "../skills/tools/exec-tool.js";
import type { BackgroundTaskManager } from "../runtime/infra/background-tasks.js";
import type { SandboxConfig } from "../skills/tools/shell/sandbox/sandbox-types.js";
import { type PathService, type RuntimeToolContract } from "../runtime/ports/index.js";
export interface LocalCoreToolRegistrationContext {
    tools: PortableTool<any>[];
    taskToolHooks?: TaskToolHooks;
    backgroundTaskRuntime: BackgroundTaskManager | null;
    getBackgroundTaskRuntime?: () => BackgroundTaskManager | null;
    getTaskScopeKey?: () => string | undefined;
    askUserCallback: ((questions: AskUserQuestion[]) => Promise<Record<string, string> | null>) | null;
    getAskUserCallback?: () => ((questions: AskUserQuestion[]) => Promise<Record<string, string> | null>) | null;
    onExecProgress?: (progress: ExecProgress) => void;
    getCwd(): string;
    activeProjectRoot(): string;
    resolveSandboxConfig(): SandboxConfig | undefined;
    isGroupSecurityMode?(): boolean;
    pathService?: PathService;
    log?: {
        info(message: string): void;
        warn(message: string): void;
    };
    listToolNames(): string[];
    findRegisteredTool(name: string): RuntimeToolContract | undefined;
    activateRegisteredTool(name: string): boolean;
}
export declare function setGroupSecurityMode(enabled: boolean): void;
export declare const localCoreToolRegistrationModule: import("../runtime/ports/tool-contracts.js").ToolRegistrationModule<LocalCoreToolRegistrationContext>;
export declare function registerLocalCoreTools(context: LocalCoreToolRegistrationContext): void;
export declare function validateExecCommand(command: string, workdir: string, groupMode?: boolean): string | null;
