import type { _ } from "hkts/src"; import type * as Common from "@truffle/compile-common"; import type { Process } from "../../process"; import * as Base from "../batch"; export type Config = { compilation: {}; contract: {}; source: {}; resources: {}; entry: any; result: any; }; export type Resources = C["resources"]; export type Entry = C["entry"]; export type Result = C["result"]; export type Source = C["source"]; export type Contract = Common.CompiledContract & C["contract"]; export type Compilation = Common.Compilation & C["compilation"] & { contracts: Contract[]; sources: Source[]; }; export declare namespace Compilations { type Structure<_C extends Config> = _[]; type Breadcrumb<_C extends Config> = { compilationIndex: number; }; type Batch = { structure: Structure; breadcrumb: Breadcrumb; input: Compilation; output: Compilation & { db: Resources; }; entry: Entry; result: Result; }; type Options = Omit>, "iterate" | "find" | "initialize" | "merge">; const configure: (options: Options) => , O extends Common.Compilation & C["compilation"] & { contracts: Contract[]; sources: Source[]; } & { db: Resources; }>(inputs: I[]) => Generator; } export declare namespace Contracts { type Structure = (Omit & C["compilation"] & { contracts: (Common.CompiledContract & _)[]; })[]; type Breadcrumb<_C extends Config> = { compilationIndex: number; contractIndex: number; }; type Batch = { structure: Structure; breadcrumb: Breadcrumb; input: Contract; output: Contract & { db: Resources; }; entry: Entry; result: Result; }; type Options = Omit>, "iterate" | "find" | "initialize" | "find" | "merge">; const configure: (options: Options) => , O extends Common.CompiledContract & C["contract"] & { db: Resources; }>(inputs: import("hkts/src").$ & C["compilation"] & { contracts: (Common.CompiledContract & _)[]; }, [I]>[]) => Generator & C["compilation"] & { contracts: (Common.CompiledContract & _)[]; }, [I & O]>[], any>; }