/**
 * Enable Bedrock For Target Use Case
 *
 * Generalizes the application-only EnableBedrockForApplication use case
 * to support every bedrock-capable entity: Application | Repository |
 * Feature. The use case:
 *
 *   1. Resolves the target entity via its kind + id.
 *   2. Persists `bedrockEnabled = true` on that entity (idempotent —
 *      a no-op when already enabled).
 *   3. Invokes `IBedrockIntegrationService.init()` with the entity's
 *      resolved worktree path.
 *
 * This is the single entry point used by the CLI (`shep bedrock init`)
 * and every web server action (`enableBedrockForApplication`,
 * `enableBedrockForRepository`, `enableBedrockForFeature`).
 */
import { BedrockTargetKind } from '../../../domain/generated/output.js';
import type { BedrockLifecycleResult, BedrockProgressHandler, IBedrockIntegrationService } from '../../ports/output/services/bedrock-integration.service.js';
import type { IApplicationRepository } from '../../ports/output/repositories/application-repository.interface.js';
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
import type { IRepositoryRepository } from '../../ports/output/repositories/repository-repository.interface.js';
export interface EnableBedrockForTargetInput {
    kind: BedrockTargetKind;
    id: string;
    onProgress?: BedrockProgressHandler;
}
export declare class EnableBedrockForTargetUseCase {
    private readonly appRepo;
    private readonly repoRepo;
    private readonly featureRepo;
    private readonly bedrock;
    constructor(appRepo: IApplicationRepository, repoRepo: IRepositoryRepository, featureRepo: IFeatureRepository, bedrock: IBedrockIntegrationService);
    execute(input: EnableBedrockForTargetInput): Promise<BedrockLifecycleResult>;
    private resolveTarget;
}
//# sourceMappingURL=enable-bedrock-for-target.use-case.d.ts.map