import { SwiftBuild, SwiftBuildOptions, SwiftRunOptions, SwiftTestOptions } from './SwiftBuild.js';
import { SwiftPackageInfo, Dependency, Product } from './SwiftPackageInfo.js';
import { CompileError } from './XcodeBuild.js';
import { BuildError } from '../buildErrorParsing.js';
/**
 * Represents a Swift package (Package.swift)
 */
export declare class SwiftPackage {
    readonly path: string;
    readonly name: string;
    private build;
    private info;
    constructor(path: string, components?: {
        build?: SwiftBuild;
        info?: SwiftPackageInfo;
    });
    /**
     * Build the package
     */
    buildPackage(options?: SwiftBuildOptions): Promise<{
        success: boolean;
        output: string;
        logPath?: string;
        compileErrors?: CompileError[];
        buildErrors?: BuildError[];
    }>;
    /**
     * Run an executable from the package
     */
    run(options?: SwiftRunOptions): Promise<{
        success: boolean;
        output: string;
        logPath?: string;
        compileErrors?: CompileError[];
        buildErrors?: BuildError[];
    }>;
    /**
     * Test the package
     */
    test(options?: SwiftTestOptions): Promise<{
        success: boolean;
        output: string;
        passed: number;
        failed: number;
        failingTests?: Array<{
            identifier: string;
            reason: string;
        }>;
        compileErrors?: CompileError[];
        buildErrors?: BuildError[];
        logPath: string;
    }>;
    /**
     * Clean build artifacts
     */
    clean(): Promise<void>;
    /**
     * Get list of products (executables and libraries)
     */
    getProducts(): Promise<Product[]>;
    /**
     * Get list of targets
     */
    getTargets(): Promise<string[]>;
    /**
     * Get list of dependencies
     */
    getDependencies(): Promise<Dependency[]>;
    /**
     * Add a dependency
     */
    addDependency(url: string, options?: {
        version?: string;
        branch?: string;
        exact?: boolean;
        from?: string;
        upToNextMajor?: string;
    }): Promise<void>;
    /**
     * Remove a dependency
     */
    removeDependency(name: string): Promise<void>;
    /**
     * Update all dependencies
     */
    updateDependencies(): Promise<void>;
    /**
     * Resolve dependencies
     */
    resolveDependencies(): Promise<void>;
    /**
     * Get the package directory
     */
    getDirectory(): string;
    /**
     * Check if this is an executable package
     */
    isExecutable(): Promise<boolean>;
    /**
     * Get executable products
     */
    getExecutables(): Promise<string[]>;
}
//# sourceMappingURL=SwiftPackage.d.ts.map