import { XcodeBuild, BuildOptions, TestOptions, CompileError } from './XcodeBuild.js';
import { XcodeArchive, ArchiveOptions, ExportOptions } from './XcodeArchive.js';
import { XcodeInfo } from './XcodeInfo.js';
import { BuildError } from '../buildErrorParsing.js';
import { Platform } from '../../types.js';
/**
 * Represents an Xcode project (.xcodeproj) or workspace (.xcworkspace)
 */
export declare class XcodeProject {
    readonly path: string;
    readonly type: 'project' | 'workspace';
    readonly name: string;
    private build;
    private archive;
    private info;
    constructor(path: string, type: 'project' | 'workspace', components?: {
        build?: XcodeBuild;
        archive?: XcodeArchive;
        info?: XcodeInfo;
    });
    /**
     * Build the project
     */
    buildProject(options?: BuildOptions): Promise<{
        success: boolean;
        output: string;
        appPath?: string;
        logPath?: string;
        errors?: CompileError[];
    }>;
    /**
     * Run tests for the project
     */
    test(options?: TestOptions): Promise<{
        success: boolean;
        output: string;
        passed: number;
        failed: number;
        failingTests?: Array<{
            identifier: string;
            reason: string;
        }>;
        compileErrors?: CompileError[];
        buildErrors?: BuildError[];
        logPath: string;
    }>;
    /**
     * Archive the project for distribution
     */
    archiveProject(options: ArchiveOptions): Promise<{
        success: boolean;
        archivePath: string;
    }>;
    /**
     * Export an IPA from an archive
     */
    exportIPA(archivePath: string, options?: ExportOptions): Promise<{
        success: boolean;
        ipaPath: string;
    }>;
    /**
     * Clean build artifacts
     */
    clean(options?: {
        scheme?: string;
        configuration?: string;
    }): Promise<void>;
    /**
     * Get list of schemes
     */
    getSchemes(): Promise<string[]>;
    /**
     * Get list of targets
     */
    getTargets(): Promise<string[]>;
    /**
     * Get build settings for a scheme
     */
    getBuildSettings(scheme: string, configuration?: string, platform?: Platform): Promise<any>;
    /**
     * Get comprehensive project information
     */
    getProjectInfo(): Promise<{
        name: string;
        schemes: string[];
        targets: string[];
        configurations: string[];
    }>;
    /**
     * Check if this is a workspace
     */
    isWorkspace(): boolean;
    /**
     * Get the project directory
     */
    getDirectory(): string;
}
//# sourceMappingURL=XcodeProject.d.ts.map