import type { SeedWorkspaceLease } from "../workspace-state/types.js";
import type { SeedToolHookCapability, SeedToolPath } from "./types.js";
export type SeedMemberToolPolicy = {
    allowed_tools?: string[];
    denied_tools?: string[];
};
export type SeedMemberMcpPolicy = {
    allowed_mcps?: string[];
    denied_mcps?: string[];
};
export type SeedMemberSkillPolicy = {
    allowed_skills?: string[];
    denied_skills?: string[];
    allow_user_skills?: boolean;
};
export type SeedMemberToolUseDecisionCode = "allowed" | "tool_denied" | "tool_not_allowed" | "recursive_delegation_denied" | "seed_command_exec_reserved" | "mcp_denied" | "mcp_not_allowed" | "mcp_uninspectable" | "skill_denied" | "skill_not_allowed" | "member_has_no_read_paths" | "outside_member_read_paths" | "member_has_no_write_paths" | "outside_member_write_paths" | "write_path_unknown" | "missing_active_lease" | "shell_effect_unknown" | "unknown_tool";
export type SeedMemberToolUseDecision = {
    allowed: true;
    code: "allowed";
    reason: string;
    capability: SeedToolHookCapability;
    extracted_paths: SeedToolPath[];
    matched_lease_ids: string[];
} | {
    allowed: false;
    code: Exclude<SeedMemberToolUseDecisionCode, "allowed">;
    reason: string;
    capability: SeedToolHookCapability;
    extracted_paths: SeedToolPath[];
    matched_lease_ids: string[];
};
export type SeedMemberToolUseInput = {
    toolName: string;
    args: unknown;
    memberName?: string;
    memberToolPolicy?: SeedMemberToolPolicy;
    memberMcpPolicy?: SeedMemberMcpPolicy;
    memberSkillPolicy?: SeedMemberSkillPolicy;
    memberReadPaths?: string[];
    memberWritePaths?: string[];
    activeLeases?: SeedWorkspaceLease[];
    allowRecursiveDelegation?: boolean;
    safeCoordinationTools?: string[];
};
export declare function evaluateMemberToolUse(input: SeedMemberToolUseInput): SeedMemberToolUseDecision;
