/**
 * 🛠️ Smart Tools - Intelligent Browser Automation Tools
 * Provides LangChain tools for the Smart AI Agent
 * Adapted from Endorphin AI's sophisticated tool system for WebDriverIO
 */
import { z } from 'zod';
import { Browser } from 'webdriverio';
export interface SmartToolContext {
    browser: Browser;
    currentUrl?: string;
    pageTitle?: string;
    lastAction?: string;
    errorCount: number;
    successCount: number;
}
/**
 * Smart Navigation Tool - Enhanced with schema validation
 */
export declare function createSmartNavigationTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    url: z.ZodString;
    waitForLoad: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    url: string;
    waitForLoad?: boolean | undefined;
}, {
    url: string;
    waitForLoad?: boolean | undefined;
}>, {
    url: string;
    waitForLoad?: boolean;
}, {
    url: string;
    waitForLoad?: boolean | undefined;
}, string>;
/**
 * Smart Click Tool - Enhanced with multiple strategies
 */
export declare function createSmartClickTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    selector: z.ZodString;
    strategy: z.ZodOptional<z.ZodEnum<["css", "text", "exact-text", "xpath", "id", "name"]>>;
    timeout: z.ZodOptional<z.ZodNumber>;
    force: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    selector: string;
    strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
    timeout?: number | undefined;
    force?: boolean | undefined;
}, {
    selector: string;
    strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
    timeout?: number | undefined;
    force?: boolean | undefined;
}>, {
    selector: string;
    strategy?: "css" | "text" | "exact-text" | "xpath" | "id" | "name";
    timeout?: number;
    force?: boolean;
}, {
    selector: string;
    strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
    timeout?: number | undefined;
    force?: boolean | undefined;
}, string>;
/**
 * Smart Fill Tool - Enhanced with field detection
 */
export declare function createSmartFillTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    selector: z.ZodString;
    value: z.ZodString;
    strategy: z.ZodOptional<z.ZodEnum<["fill", "type"]>>;
    clearFirst: z.ZodOptional<z.ZodBoolean>;
    pressEnter: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    selector: string;
    value: string;
    strategy?: "type" | "fill" | undefined;
    clearFirst?: boolean | undefined;
    pressEnter?: boolean | undefined;
}, {
    selector: string;
    value: string;
    strategy?: "type" | "fill" | undefined;
    clearFirst?: boolean | undefined;
    pressEnter?: boolean | undefined;
}>, {
    selector: string;
    value: string;
    strategy?: "fill" | "type";
    clearFirst?: boolean;
    pressEnter?: boolean;
}, {
    selector: string;
    value: string;
    strategy?: "type" | "fill" | undefined;
    clearFirst?: boolean | undefined;
    pressEnter?: boolean | undefined;
}, string>;
/**
 * Smart Verify Tool - Enhanced with multiple verification types
 */
export declare function createSmartVerifyTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    type: z.ZodEnum<["text", "element", "url", "title", "count"]>;
    selector: z.ZodOptional<z.ZodString>;
    expected: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    timeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    type: "url" | "element" | "text" | "title" | "count";
    expected: string | number;
    selector?: string | undefined;
    timeout?: number | undefined;
}, {
    type: "url" | "element" | "text" | "title" | "count";
    expected: string | number;
    selector?: string | undefined;
    timeout?: number | undefined;
}>, {
    type: "text" | "element" | "url" | "title" | "count";
    selector?: string;
    expected: string | number;
    timeout?: number;
}, {
    type: "url" | "element" | "text" | "title" | "count";
    expected: string | number;
    selector?: string | undefined;
    timeout?: number | undefined;
}, string>;
/**
 * Smart Wait Tool - Enhanced with multiple wait types
 */
export declare function createSmartWaitTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    type: z.ZodEnum<["element", "text", "time", "network"]>;
    selector: z.ZodOptional<z.ZodString>;
    value: z.ZodOptional<z.ZodString>;
    timeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    type: "element" | "text" | "time" | "network";
    selector?: string | undefined;
    timeout?: number | undefined;
    value?: string | undefined;
}, {
    type: "element" | "text" | "time" | "network";
    selector?: string | undefined;
    timeout?: number | undefined;
    value?: string | undefined;
}>, {
    type: "element" | "text" | "time" | "network";
    selector?: string;
    value?: string;
    timeout?: number;
}, {
    type: "element" | "text" | "time" | "network";
    selector?: string | undefined;
    timeout?: number | undefined;
    value?: string | undefined;
}, string>;
/**
 * Smart Screenshot Tool - Enhanced with intelligent naming
 */
export declare function createSmartScreenshotTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    description?: string | undefined;
    name?: string | undefined;
}, {
    description?: string | undefined;
    name?: string | undefined;
}>, {
    name?: string;
    description?: string;
}, {
    description?: string | undefined;
    name?: string | undefined;
}, string>;
/**
 * Smart Get Content Tool - Enhanced content analysis
 */
export declare function createSmartGetContentTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<["full", "text", "elements"]>>;
    selector: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type?: "text" | "full" | "elements" | undefined;
    selector?: string | undefined;
}, {
    type?: "text" | "full" | "elements" | undefined;
    selector?: string | undefined;
}>, {
    type?: "full" | "text" | "elements";
    selector?: string;
}, {
    type?: "text" | "full" | "elements" | undefined;
    selector?: string | undefined;
}, string>;
/**
 * Create all smart tools for the framework
 */
export declare function createAllSmartTools(browser: Browser): any[];
//# sourceMappingURL=SmartTools.d.ts.map