import type { IJsonDocumentRepository } from "../../../domain/repositories/IJsonDocumentRepository.js";
import type { IIndexService } from "../../../infrastructure/index/index.js";
import type { IUseCase } from "../../interfaces/IUseCase.js";
/**
 * Input data for update JSON index use case
 */
export interface UpdateJsonIndexInput {
    /**
     * Branch name (required for branch index, omit for global)
     */
    branchName?: string;
    /**
     * Whether to perform a full rebuild (default: false)
     */
    fullRebuild?: boolean;
}
/**
 * Output data for update JSON index use case
 */
export interface UpdateJsonIndexOutput {
    /**
     * List of all tags in the index
     */
    tags: string[];
    /**
     * Number of documents in the index
     */
    documentCount: number;
    /**
     * Index update metadata
     */
    updateInfo: {
        /**
         * Location of index (branch name or "global")
         */
        updateLocation: string;
        /**
         * Whether a full rebuild was performed
         */
        fullRebuild: boolean;
        /**
         * Timestamp of update
         */
        timestamp: string;
    };
}
/**
 * Use case for updating JSON document indexes
 */
export declare class UpdateJsonIndexUseCase implements IUseCase<UpdateJsonIndexInput, UpdateJsonIndexOutput> {
    private readonly jsonRepository;
    private readonly indexService;
    private readonly globalRepository?;
    /**
     * Constructor
     * @param jsonRepository JSON document repository
     * @param indexService Index service for updating indexes
     * @param globalRepository Global JSON document repository (optional)
     */
    constructor(jsonRepository: IJsonDocumentRepository, indexService: IIndexService, globalRepository?: IJsonDocumentRepository | undefined);
    /**
     * Execute the use case
     * @param input Input data
     * @returns Promise resolving to output data
     */
    execute(input: UpdateJsonIndexInput): Promise<UpdateJsonIndexOutput>;
}
//# sourceMappingURL=UpdateJsonIndexUseCase.d.ts.map