import { A as AbiEntry } from './types-Dtu4IsSh.js'; import '@parity/result'; import '@parity/product-sdk-signer'; import '@parity/product-sdk-tx'; import 'polkadot-api'; import '@parity/product-sdk-errors'; /** A contract input to {@link generateContractTypes}: either an inline ABI or a `cargo-pvm-contract` artefact path. */ type ContractTypeInput = { library: string; abi: AbiEntry[]; } | { library: string; abiPath: string; }; /** * Resolve a heterogeneous list of {@link ContractTypeInput} entries into the * `{ library, abi }` shape consumed by {@link generateContractTypes}. Reads any * `abiPath` entries off disk via {@link loadPvmContractAbi} (Node only). * * @example * ```ts * const resolved = await resolveContractTypeInputs([ * { library: "@example/counter", abiPath: "./target/counter.release.abi.json" }, * { library: "@example/inline", abi: counterAbi }, * ]); * const src = generateContractTypes(resolved); * ``` */ declare function resolveContractTypeInputs(inputs: readonly ContractTypeInput[]): Promise<{ library: string; abi: AbiEntry[]; }[]>; /** * Generate a TypeScript module augmentation that extends the * {@link Contracts} interface with typed method signatures for each * installed contract. * * The output is written to `.cdm/contracts.d.ts` (or equivalent) and * augments `"@parity/product-sdk-contracts"` so that * `ContractManager.getContract()` returns fully-typed handles. * * Accepts `{ library, abi }` directly. To pull ABIs from * `cargo-pvm-contract` build artefacts on disk, use * {@link resolveContractTypeInputs} first. * * @example * ```ts * // Inline ABIs * const src = generateContractTypes([ * { library: "@example/counter", abi }, * ]); * writeFileSync(".cdm/contracts.d.ts", src); * * // From cargo-pvm-contract artefacts * const resolved = await resolveContractTypeInputs([ * { library: "@example/counter", abiPath: "./target/counter.release.abi.json" }, * ]); * writeFileSync(".cdm/contracts.d.ts", generateContractTypes(resolved)); * ``` */ declare function generateContractTypes(contracts: { library: string; abi: AbiEntry[]; }[]): string; export { type ContractTypeInput, generateContractTypes, resolveContractTypeInputs };