import { DebugState } from './types';
export interface TidewaveCapabilities {
    framework: 'phoenix' | 'rails' | 'unknown';
    endpoint: string;
    available_tools: string[];
    version?: string;
}
export interface TidewaveRequest {
    tool: string;
    params?: Record<string, any>;
}
export interface TidewaveResponse {
    success: boolean;
    data?: any;
    error?: string;
    metadata?: {
        execution_time?: number;
        framework_version?: string;
    };
}
export declare class TidewaveIntegration {
    private capabilities;
    /**
     * Detect if a URL has Tidewave enabled and what capabilities it has
     */
    detectTidewave(url: string): Promise<TidewaveCapabilities | null>;
    /**
     * Test if a Tidewave endpoint is accessible
     */
    private testEndpoint;
    /**
     * Execute a Tidewave tool for enhanced debugging/testing
     */
    executeTool(url: string, request: TidewaveRequest): Promise<TidewaveResponse>;
    /**
     * Get application logs through Tidewave
     */
    getLogs(url: string, options?: {
        level?: string;
        limit?: number;
        since?: string;
    }): Promise<TidewaveResponse>;
    /**
     * Execute custom code for testing/debugging
     */
    evaluateCode(url: string, code: string, context?: Record<string, any>): Promise<TidewaveResponse>;
    /**
     * Get application documentation
     */
    getDocumentation(url: string, path?: string): Promise<TidewaveResponse>;
    /**
     * Execute SQL queries for database testing
     */
    executeSQL(url: string, query: string, params?: any[]): Promise<TidewaveResponse>;
    /**
     * Trace application processes
     */
    traceProcesses(url: string, pattern?: string): Promise<TidewaveResponse>;
    /**
     * Search project dependencies
     */
    searchDependencies(url: string, query: string): Promise<TidewaveResponse>;
    /**
     * Enhanced debugging state with Tidewave data
     */
    enhanceDebugState(url: string, debugState: DebugState): Promise<DebugState>;
    /**
     * Generate test assertions using Tidewave application knowledge
     */
    generateTestAssertions(url: string, scenario: string): Promise<string[]>;
}
export declare const tidewave: TidewaveIntegration;
//# sourceMappingURL=tidewave-integration.d.ts.map