import { Repository } from 'typeorm';
import { App } from '../../entities/app.entity';
import { Build } from '../../entities/build.entity';
import { User } from '../../entities/user.entity';
import { GoogleDriveService } from '../drive/google-drive.service';
import { MetadataExtractionService } from './services/metadata-extraction.service';
export declare class BuildService {
    private readonly appRepo;
    private readonly buildRepo;
    private readonly userRepo;
    private readonly driveService;
    private readonly metadataService;
    private readonly logger;
    constructor(appRepo: Repository<App>, buildRepo: Repository<Build>, userRepo: Repository<User>, driveService: GoogleDriveService, metadataService: MetadataExtractionService);
    findOrCreateApp(userId: string, platform: 'android' | 'ios', bundleOrPackage: string, appName: string): Promise<App>;
    createBuild(user: User, filePath: string, originalName: string, mimeType: string, releaseNotes?: string, password?: string): Promise<Build>;
    private compareVersions;
    private compareBuildNumbers;
    private validateVersionAndBuild;
    private static readonly SHORT_CODE_CHARS;
    private generateUniqueShortCode;
    getBuildIdByShortCode(shortCode: string): Promise<string | null>;
    getBuildById(buildId: string): Promise<Build | null>;
    getBuildsByUser(userId: string): Promise<Build[]>;
    getAppsByUser(userId: string): Promise<App[]>;
    updateBuildReleaseNotes(buildId: string, userId: string, updateDescription: string): Promise<Build | null>;
    updateBuild(buildId: string, userId: string, updateDescription?: string, password?: string, removePassword?: boolean): Promise<Build | null>;
    deleteBuild(buildId: string, userId: string): Promise<boolean>;
    verifyBuildPassword(buildId: string, password: string): Promise<boolean>;
    deleteApp(appId: string, userId: string): Promise<boolean>;
    private buildIosManifestPlist;
    private processReleaseNotes;
    private looksLikeCommitMessages;
    private static readonly GROQ_API_URL;
    private static readonly GROQ_MODEL;
    private static readonly CI_RELEASE_NOTES_PROMPT;
    private improveReleaseNotesWithAI;
    private escapeXml;
}
