import type { AdditionalToolDefinition } from '../contexts/ChatContext';
/**
 * Permission levels for additional tools that can be configured by users
 */
export type FunctionToolPermission = 'enabled' | 'ask_first' | 'disabled';
/**
 * Map of tool names to their user-configured permissions
 */
export interface AdditionalToolPreferences {
    [toolName: string]: FunctionToolPermission;
}
/**
 * Additional tool with computed permission state
 */
export interface AdditionalToolWithPermission extends AdditionalToolDefinition {
    /** User-configurable permission override (if tool allows it) */
    runtimePermission?: FunctionToolPermission;
    /** Final computed permission used by the chat agent */
    effectivePermission: FunctionToolPermission;
    /** Whether the user can change the permission for this tool */
    isPermissionConfigurable: boolean;
    /** Human-readable reason why permission is or isn't configurable */
    permissionReason: string;
}
/**
 * Storage structure for persisting additional tool preferences
 */
export interface StoredAdditionalToolPreferences {
    version: number;
    preferences: AdditionalToolPreferences;
    lastUpdated: string;
}
//# sourceMappingURL=additionalTools.d.ts.map