import type { Clark, ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
/**
 * Grep-like patterns for searching metadata
 * Examples:
 * - "tables like 'user%'" - tables starting with "user"
 * - "tables containing 'customer'" - tables containing "customer"
 * - "columns in table 'users'" - columns in specific table
 * - "columns containing 'email'" - columns with "email" in name/type
 * - "schemas like 'prod_*'" - schemas matching pattern
 */
export interface GrepPattern {
    scope: "tables" | "columns" | "schemas" | "paths" | "operations" | "types" | "queries" | "mutations" | "fields";
    operation: "like" | "containing" | "exact" | "in_table" | "in_type" | "regex";
    pattern: string | string[];
    tableName?: string;
    typeName?: string;
}
type MetadataType = "database" | "openapi" | "graphql" | "unknown";
export interface GrepMetadataResult {
    matches: Array<{
        type: "table" | "column" | "schema" | "path" | "operation" | "graphql_type" | "query" | "mutation" | "field" | "value";
        name: string;
        jsonPath?: string;
        value?: string | number | boolean | null;
        schema?: string;
        table?: string;
        columnType?: string;
        graphqlType?: string;
        method?: string;
        path?: string;
        columns?: Array<{
            name: string;
            type?: string;
        }>;
        parameters?: Array<any>;
        requestBody?: any;
        responses?: any;
        kind?: string;
        description?: string;
        fields?: Array<any>;
        fieldNames?: string[];
        typeName?: string;
        returnType?: string | any;
        args?: Array<any>;
        details?: any;
    }>;
    totalCount: number;
    truncated: boolean;
    stoppedAt?: number;
    hasMore?: boolean;
    suggestion?: string;
    metadataType?: MetadataType;
    pluginId?: string;
    isDatabricksIntegration?: boolean;
}
/**
 * Grep Metadata Tool - Search integration metadata using ripgrep regex patterns
 *
 * This tool searches gron-formatted metadata cache files using ripgrep.
 */
export declare const grepMetadataToolFactory: import("../types.js").ToolFactory<{
    clark: Clark;
    services: ClarkStateHandlerParams;
}, import("../types.js").Tool<{
    integrationId: string;
    grepPattern: string;
    startIndex?: number | undefined;
    includeDetails?: boolean | undefined;
    forceRefresh?: boolean | undefined;
}, {
    error: string;
    matches: never[];
    totalCount: number;
    truncated: boolean;
    pluginId: string | undefined;
    isDatabricksIntegration: boolean;
} | {
    suggestion: string | undefined;
    metadataType: any;
    matches: Array<{
        type: "table" | "column" | "schema" | "path" | "operation" | "graphql_type" | "query" | "mutation" | "field" | "value";
        name: string;
        jsonPath?: string;
        value?: string | number | boolean | null;
        schema?: string;
        table?: string;
        columnType?: string;
        graphqlType?: string;
        method?: string;
        path?: string;
        columns?: Array<{
            name: string;
            type?: string;
        }>;
        parameters?: Array<any>;
        requestBody?: any;
        responses?: any;
        kind?: string;
        description?: string;
        fields?: Array<any>;
        fieldNames?: string[];
        typeName?: string;
        returnType?: string | any;
        args?: Array<any>;
        details?: any;
    }>;
    totalCount: number;
    truncated: boolean;
    stoppedAt?: number;
    hasMore?: boolean;
    pluginId?: string;
    isDatabricksIntegration?: boolean;
    readonly error?: undefined;
} | {
    error: string;
    matches: never[];
    totalCount: number;
    truncated: boolean;
    pluginId?: undefined;
    isDatabricksIntegration?: undefined;
}>>;
export {};
//# sourceMappingURL=grep-metadata.d.ts.map