import { ClusterEntity } from '../../../../src/modules/infrastructure/clusters/entities/cluster.entity';
/**
 * File-based Cluster Repository for CLI
 *
 * Persists cluster data in ~/.flui/clusters.json
 * Provides TypeORM-like interface without requiring database
 */
export declare class CliClusterRepository {
    private readonly logger;
    private readonly dataDir;
    private readonly dataFile;
    constructor();
    /**
     * Ensure profile directory exists
     */
    private ensureDataDir;
    /**
     * Load all clusters from file
     */
    private loadClusters;
    /**
     * Save all clusters to file
     */
    private saveClusters;
    /**
     * Create a new cluster entity (doesn't save to file yet)
     * This mimics TypeORM's Repository.create() method
     */
    create(data: Partial<ClusterEntity>): ClusterEntity;
    /**
     * Find one cluster by criteria
     */
    findOne(options: {
        where?: Partial<ClusterEntity>;
        relations?: string[];
    }): Promise<ClusterEntity | null>;
    /**
     * Find all clusters matching criteria
     */
    find(options?: {
        where?: Partial<ClusterEntity>;
        relations?: string[];
    }): Promise<ClusterEntity[]>;
    /**
     * Save cluster (create or update)
     */
    save(cluster: ClusterEntity): Promise<ClusterEntity>;
    /**
     * Delete cluster
     */
    remove(cluster: ClusterEntity): Promise<ClusterEntity>;
    /**
     * Generate unique ID (UUID v4, compatible with PostgreSQL)
     */
    private generateId;
}
