import type { DaoCoreConfig } from "../config/types.daocore.js";
import type { AnyAgentTool } from "./pi-tools.types.js";
import type { SandboxToolPolicy } from "./sandbox.js";
import { type SessionCapabilityStore } from "./subagent-capabilities.js";
export declare function resolveSubagentToolPolicy(cfg?: DaoCoreConfig, depth?: number): SandboxToolPolicy;
export declare function resolveSubagentToolPolicyForSession(cfg: DaoCoreConfig | undefined, sessionKey: string, opts?: {
    store?: SessionCapabilityStore;
}): SandboxToolPolicy;
export declare function resolveInheritedToolPolicyForSession(cfg: DaoCoreConfig | undefined, sessionKey: string | undefined | null, opts?: {
    store?: SessionCapabilityStore;
}): SandboxToolPolicy | undefined;
export declare function filterToolsByPolicy(tools: AnyAgentTool[], policy?: SandboxToolPolicy): AnyAgentTool[];
type ToolPolicyConfig = {
    allow?: string[];
    alsoAllow?: string[];
    deny?: string[];
    profile?: string;
};
export declare function resolveTrustedGroupId(params: {
    groupId?: string | null;
    sessionKey?: string | null;
    spawnedBy?: string | null;
}): {
    groupId: string | null | undefined;
    dropped: boolean;
};
export declare function resolveProviderToolPolicy(params: {
    byProvider?: Record<string, ToolPolicyConfig>;
    modelProvider?: string;
    modelId?: string;
}): ToolPolicyConfig | undefined;
export declare function resolveEffectiveToolPolicy(params: {
    config?: DaoCoreConfig;
    sessionKey?: string;
    agentId?: string;
    modelProvider?: string;
    modelId?: string;
}): {
    agentId: string | undefined;
    globalPolicy: SandboxToolPolicy | undefined;
    globalProviderPolicy: SandboxToolPolicy | undefined;
    agentPolicy: SandboxToolPolicy | undefined;
    agentProviderPolicy: SandboxToolPolicy | undefined;
    profile: import("../config/types.tools.js").ToolProfileId | undefined;
    providerProfile: string | undefined;
    profileAlsoAllow: string[] | undefined;
    providerProfileAlsoAllow: string[] | undefined;
};
export declare function resolveGroupToolPolicy(params: {
    config?: DaoCoreConfig;
    sessionKey?: string;
    spawnedBy?: string | null;
    messageProvider?: string;
    groupId?: string | null;
    groupChannel?: string | null;
    groupSpace?: string | null;
    accountId?: string | null;
    senderId?: string | null;
    senderName?: string | null;
    senderUsername?: string | null;
    senderE164?: string | null;
}): SandboxToolPolicy | undefined;
export { isToolAllowedByPolicies, isToolAllowedByPolicyName } from "./tool-policy-match.js";
