import { type ToolDefinition } from "@opencode-ai/plugin/tool";
import type { TeamModeConfig } from "../../../config/schema/team-mode";
import type { CategoriesConfig, AgentOverrides } from "../../../config/schema";
import type { OpencodeClient } from "../../../tools/delegate-task/types";
import type { BackgroundManager } from "../../background-agent/manager";
import type { TmuxSessionManager } from "../../tmux-subagent/manager";
import { loadTeamSpec } from "../team-registry/loader";
import { createTeamRun } from "../team-runtime/create";
import { approveShutdown, deleteTeam, rejectShutdown, requestShutdownOfMember } from "../team-runtime/shutdown";
import { listActiveTeams, loadRuntimeState } from "../team-state-store/store";
type TeamRuntimeStoreDeps = {
    listActiveTeams: typeof listActiveTeams;
    loadRuntimeState: typeof loadRuntimeState;
};
type TeamShutdownToolDeps = TeamRuntimeStoreDeps & {
    deleteTeam: typeof deleteTeam;
    requestShutdownOfMember: typeof requestShutdownOfMember;
    approveShutdown: typeof approveShutdown;
    rejectShutdown: typeof rejectShutdown;
};
export type TeamCreateExecutorConfig = {
    userCategories?: CategoriesConfig;
    sisyphusJuniorModel?: string;
    agentOverrides?: AgentOverrides;
};
type TeamCreateToolDeps = {
    createTeamRun: typeof createTeamRun;
    loadTeamSpec: typeof loadTeamSpec;
    listActiveTeams: typeof listActiveTeams;
    loadRuntimeState: typeof loadRuntimeState;
};
export declare function createTeamCreateTool(config: TeamModeConfig, client: OpencodeClient, bgMgr: BackgroundManager, tmuxMgr?: TmuxSessionManager, executorConfig?: TeamCreateExecutorConfig, deps?: TeamCreateToolDeps): ToolDefinition;
export declare function createTeamDeleteTool(config: TeamModeConfig, client: OpencodeClient, backgroundManager: BackgroundManager, tmuxMgr?: TmuxSessionManager, deps?: TeamShutdownToolDeps): ToolDefinition;
export declare function createTeamShutdownRequestTool(config: TeamModeConfig, client: OpencodeClient, deps?: TeamShutdownToolDeps): ToolDefinition;
export declare function createTeamApproveShutdownTool(config: TeamModeConfig, client: OpencodeClient, deps?: TeamShutdownToolDeps): ToolDefinition;
export declare function createTeamRejectShutdownTool(config: TeamModeConfig, client: OpencodeClient, deps?: TeamShutdownToolDeps): ToolDefinition;
export {};
