import { z } from 'zod';
import { Platform } from '../../types.js';
import { XcodeProjectBuilder } from './XcodeProjectBuilder.js';
import { SPMPackageBuilder } from './SPMPackageBuilder.js';
export declare const buildSchema: z.ZodObject<{
    projectPath: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
    scheme: z.ZodOptional<z.ZodString>;
    platform: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof Platform>>>;
    deviceId: z.ZodOptional<z.ZodString>;
    configuration: z.ZodDefault<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    platform: Platform;
    projectPath: string;
    configuration: string;
    deviceId?: string | undefined;
    scheme?: string | undefined;
}, {
    projectPath: string;
    deviceId?: string | undefined;
    platform?: Platform | undefined;
    scheme?: string | undefined;
    configuration?: string | undefined;
}>;
export type BuildArgs = z.infer<typeof buildSchema>;
export interface IBuildTool {
    execute(args: any): Promise<any>;
    getToolDefinition(): any;
}
/**
 * Facade tool that delegates to appropriate build tool based on project type
 */
export declare class BuildTool implements IBuildTool {
    private xcodeProjectBuilder;
    private spmPackageBuilder;
    constructor(xcodeProjectBuilder?: XcodeProjectBuilder, spmPackageBuilder?: SPMPackageBuilder);
    getToolDefinition(): {
        name: string;
        description: string;
        inputSchema: {
            type: string;
            properties: {
                projectPath: {
                    type: string;
                    description: string;
                };
                scheme: {
                    type: string;
                    description: string;
                };
                platform: {
                    type: string;
                    description: string;
                    default: string;
                    enum: string[];
                };
                deviceId: {
                    type: string;
                    description: string;
                };
                configuration: {
                    type: string;
                    description: string;
                    default: string;
                };
            };
            required: string[];
        };
    };
    execute(args: any): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
}
//# sourceMappingURL=BuildTool.d.ts.map