/// <reference types="node" resolution-mode="require"/>
import { AppInterface } from '../../models/app/app.js';
import { ExtensionInstance } from '../../models/extensions/extension-instance.js';
import { AbortSignal } from '@shopify/cli-kit/node/abort';
import { Writable } from 'stream';
export interface ExtensionBuildOptions {
    /**
     * Standard output stream to send the output through.
     */
    stdout: Writable;
    /**
     * Standard error stream to send the error output through.
     */
    stderr: Writable;
    /**
     * Signal to abort the build process.
     */
    signal?: AbortSignal;
    /**
     * Overrides the default build directory.
     */
    buildDirectory?: string;
    /**
     * Use tasks to build the extension.
     */
    useTasks?: boolean;
    /**
     * The app that contains the extensions.
     */
    app: AppInterface;
    /**
     * The environment to build the extension.
     * Default value: production
     */
    environment: 'production' | 'development';
    /**
     * The URL where the app is running.
     */
    appURL?: string;
}
/**
 * It builds the theme extensions.
 * @param options - Build options.
 */
export declare function buildThemeExtension(extension: ExtensionInstance, options: ExtensionBuildOptions): Promise<void>;
/**
 * It builds the UI extensions.
 * @param options - Build options.
 */
export declare function buildUIExtension(extension: ExtensionInstance, options: ExtensionBuildOptions): Promise<void>;
export interface BuildFunctionExtensionOptions extends ExtensionBuildOptions {
}
/**
 * Builds a function extension
 * @param extension - The function extension to build.
 * @param options - Options to configure the build of the extension.
 */
export declare function buildFunctionExtension(extension: ExtensionInstance, options: BuildFunctionExtensionOptions): Promise<void>;
