type GrepResult = {
    lines: string[];
    error?: string;
};
type ReadResult = {
    lines: string[];
    error?: string;
};
type GlobResult = {
    files: string[];
    searchDir: string;
    totalFound: number;
    error?: string;
};
type ListDirectoryEntry = {
    name: string;
    path: string;
    type: 'file' | 'dir';
    depth: number;
};
interface WarpGrepProvider {
    /**
     * Run regex grep with optional file glob filter
     */
    grep(params: {
        pattern: string;
        path: string;
        glob?: string;
        context_lines?: number;
        case_sensitive?: boolean;
    }): Promise<GrepResult>;
    /**
     * Read lines from a file, optionally a range (1-based inclusive)
     */
    read(params: {
        path: string;
        start?: number;
        end?: number;
    }): Promise<ReadResult>;
    /**
     * List directory contents as a tree structure
     */
    listDirectory(params: {
        path: string;
        pattern?: string | null;
        maxResults?: number;
        maxDepth?: number;
    }): Promise<ListDirectoryEntry[]>;
    /**
     * Find files by glob pattern. Returns relative paths, max 100 results.
     */
    glob(params: {
        pattern: string;
        path?: string;
    }): Promise<GlobResult>;
}

export type { GlobResult, GrepResult, ListDirectoryEntry, ReadResult, WarpGrepProvider };
