/// <reference types="node" />
/// <reference types="node" />
import { Readable } from 'stream';
import lazystream from 'lazystream';
import multistream from 'multistream';
import { BuildTargetDescriptor } from './buildTargets';
import { ComponentType } from './componentTargets';
import { DiagnosticCategory, DiagnosticHandler } from './diagnostics';
import ProjectConfiguration from './ProjectConfiguration';
export { DiagnosticCategory };
export declare function generateBuildId(): string;
export declare function loadProjectConfig({ hasNativeComponents, onDiagnostic, fileName, }: {
    hasNativeComponents?: boolean | undefined;
    onDiagnostic?: DiagnosticHandler | undefined;
    fileName?: string | undefined;
}): ProjectConfiguration;
export declare function buildComponent({ projectConfig, component, onDiagnostic, }: {
    projectConfig: ProjectConfiguration;
    component: ComponentType;
    onDiagnostic?: DiagnosticHandler;
}): lazystream.Readable | undefined;
export declare function buildDeviceResources(projectConfig: ProjectConfiguration, { resourceFilterTag, defaultTXIOutputFormat }: BuildTargetDescriptor, onDiagnostic?: DiagnosticHandler): import("stream").Duplex;
export declare function buildDeviceComponents({ projectConfig, buildId, onDiagnostic, }: {
    projectConfig: ProjectConfiguration;
    buildId: string;
    onDiagnostic?: DiagnosticHandler;
}): multistream;
export declare function buildCompanion({ projectConfig, buildId, onDiagnostic, }: {
    projectConfig: ProjectConfiguration;
    buildId: string;
    onDiagnostic?: DiagnosticHandler;
}): lazystream.Readable | undefined;
export declare function buildAppPackage({ projectConfig, buildId, existingDeviceComponents, onDiagnostic, }: {
    projectConfig: ProjectConfiguration;
    buildId: string;
    existingDeviceComponents?: Readable;
    onDiagnostic?: DiagnosticHandler;
}): import("stream").Duplex;
export declare function buildProject({ nativeDeviceComponentPaths, onDiagnostic, }: {
    nativeDeviceComponentPaths?: string[];
    onDiagnostic?: DiagnosticHandler;
}): import("stream").Duplex;
export declare function build({ dest, onDiagnostic, nativeDeviceComponentPaths, }?: {
    dest?: NodeJS.ReadWriteStream;
    nativeDeviceComponentPaths?: string[];
    onDiagnostic?: DiagnosticHandler;
}): Promise<void>;
