import type { ComponentContextWithBuild, WorkspaceContext } from "../types/context";
import type { EnvironmentContext } from "../types/environmentContext";
import type { CatladderJob } from "../types/jobs";
import type { BuildConfig, BuildConfigStandaloneType, WorkspaceBuildConfig } from "./types";
export * from "./node";
export * from "./types";
export type BuildTypes = { [type in BuildConfigStandaloneType]: {
  jobs: (context: ComponentContextWithBuild) => CatladderJob[] | Promise<CatladderJob[]>;
  defaults: (envContext: EnvironmentContext) => Partial<Extract<BuildConfig, {
    type: type;
  }>>;
} };
export declare const BUILD_TYPES: BuildTypes;
export type WorkspaceBuildTypes = { [type in WorkspaceBuildConfig["type"]]: {
  jobs: (context: WorkspaceContext) => CatladderJob[] | Promise<CatladderJob[]>;
  defaults: () => Partial<Extract<WorkspaceBuildConfig, {
    type: type;
  }>>;
} };
export declare const WORKSPACE_BUILD_TYPES: WorkspaceBuildTypes;