import type { SKYKOIConfig } from "../config/config.js";
import type { AnyKoiTool } from "./pi-tools.types.js";
import type { SandboxToolPolicy } from "./sandbox.js";
export declare function resolveSubkoiToolPolicy(cfg?: SKYKOIConfig): SandboxToolPolicy;
export declare function isToolAllowedByPolicyName(name: string, policy?: SandboxToolPolicy): boolean;
export declare function filterToolsByPolicy(tools: AnyKoiTool[], policy?: SandboxToolPolicy): AnyKoiTool[];
export declare function resolveEffectiveToolPolicy(params: {
    config?: SKYKOIConfig;
    sessionKey?: string;
    modelProvider?: string;
    modelId?: string;
}): {
    koiId: string | undefined;
    globalPolicy: SandboxToolPolicy | undefined;
    globalProviderPolicy: SandboxToolPolicy | undefined;
    koiPolicy: SandboxToolPolicy | undefined;
    koiProviderPolicy: SandboxToolPolicy | undefined;
    profile: import("../config/types.tools.ts").ToolProfileId | undefined;
    providerProfile: string | undefined;
    profileAlsoAllow: string[] | undefined;
    providerProfileAlsoAllow: string[] | undefined;
};
export declare function resolveGroupToolPolicy(params: {
    config?: SKYKOIConfig;
    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 declare function isToolAllowedByPolicies(name: string, policies: Array<SandboxToolPolicy | undefined>): boolean;
