import type { ProjectConfig } from '../../../../config/projectConfig.js';
import type { ProjectConfigGateway } from '../../../../modules/cli-configuration/entities/projectConfig/projectConfig.gateway.js';
import type { UseCase } from '../../../../shared/foundation/usecase.base.js';
export declare const EDITABLE_PROJECT_CONFIG_KEYS: readonly ["language", "defaultModel", "reviewSkill", "reviewFollowupSkill", "externalLink", "qualityThreshold", "maxConcurrentReviews"];
export declare const EXTERNAL_LINK_PATTERN: RegExp;
export type ProjectConfigPatch = Partial<Pick<ProjectConfig, 'language' | 'defaultModel' | 'reviewSkill' | 'reviewFollowupSkill' | 'externalLink'>> & {
    qualityThreshold?: number | null;
    maxConcurrentReviews?: number | null;
};
export interface UpdateProjectConfigInput {
    path: string;
    patch: ProjectConfigPatch;
}
export type UpdateProjectConfigResult = {
    status: 'success';
    config: ProjectConfig;
} | {
    status: 'invalid';
    reason: string;
} | {
    status: 'not-found';
} | {
    status: 'malformed';
} | {
    status: 'io-error';
    reason: string;
};
export declare class UpdateProjectConfigUseCase implements UseCase<UpdateProjectConfigInput, UpdateProjectConfigResult> {
    private readonly gateway;
    private readonly onUpdated?;
    constructor(gateway: ProjectConfigGateway, onUpdated?: ((config: ProjectConfig) => void) | undefined);
    execute(input: UpdateProjectConfigInput): UpdateProjectConfigResult;
}
//# sourceMappingURL=updateProjectConfig.usecase.d.ts.map