import { Repository } from 'typeorm';
import { Build } from '../../entities/build.entity';
import { User } from '../../entities/user.entity';
import { PlatformSettings } from '../../entities/platform-settings.entity';
import { GoogleDriveService } from '../drive/google-drive.service';
export interface InstallInfo {
    platform: 'android' | 'ios';
    installUrl: string;
    appName?: string;
    version?: string;
    buildNumber?: string;
    size?: number;
    publishedAt?: string;
    shortCode?: string;
    updateDescription?: string;
    iconUrl?: string;
    unavailable?: boolean;
    message?: string;
    buildType?: string;
    provisioningProfile?: string;
    udids?: string[];
    isPasswordProtected?: boolean;
    uploaderName?: string;
}
export declare class InstallService {
    private readonly buildRepo;
    private readonly userRepo;
    private readonly settingsRepo;
    private readonly driveService;
    constructor(buildRepo: Repository<Build>, userRepo: Repository<User>, settingsRepo: Repository<PlatformSettings>, driveService: GoogleDriveService);
    getPublicSettings(userId?: string): Promise<{
        buildLinkExpiryDays: number;
        aiReleaseNotesEnabled: boolean;
    }>;
    private isBuildExpired;
    getInstallInfo(buildId: string): Promise<InstallInfo | null>;
    getApkStream(buildId: string): Promise<{
        stream: import('stream').Readable;
        mimeType: string;
        fileName: string;
        size?: number;
    } | null>;
    getIpaStream(buildId: string): Promise<{
        stream: import('stream').Readable;
        mimeType: string;
        fileName: string;
        size?: number;
    } | null>;
    getPublicDownloadUrl(buildId: string): Promise<string | null>;
    getBuildForRedirect(buildId: string): Promise<{
        url: string;
    } | null>;
    getBuildIdByShortCode(code: string): Promise<string | null>;
}
