/**
* @module "ethpm/package"
*/
///
import { URL } from 'url';
import { Maybe } from "../types";
import { Meta } from './meta';
import { Link } from './link';
export declare type Address = string;
export declare type TransactionHash = string;
export declare type BlockHash = string;
export declare type PackageName = string;
export declare type Manifest = string;
export declare type Version = string;
export declare type RelativePath = string;
export declare type ChainURI = URL;
export declare type ContentURI = URL;
export declare type SourceString = string;
export declare type ContractAlias = string;
export declare type ContractName = string;
export declare type ContractTypeReference = string;
export declare type ContractInstanceName = string;
export declare type bytecode = string;
export declare type CompilerName = string;
export declare type CompilerVersion = string;
export declare type CompilerSettings = any;
export declare type ABI = Array;
export declare type Devdoc = object;
export declare type Userdoc = object;
export interface Compiler {
name: CompilerName;
version: CompilerVersion;
settings?: CompilerSettings;
contractTypes?: Array;
}
export interface Bytecode {
bytecode: bytecode;
linkReferences: Array;
linkDependencies: Array;
}
export interface ContractType {
contractName: ContractName;
deploymentBytecode: Maybe;
runtimeBytecode: Maybe;
abi: Maybe;
devdoc: Maybe;
userdoc: Maybe;
sourceId: Maybe;
}
export interface ContractInstance {
contractType: ContractTypeReference;
address: Address;
transaction: Maybe;
block: Maybe;
runtimeBytecode: Maybe;
}
export declare type SourceId = string;
export interface SourceWithUrls {
type: Maybe;
installPath: Maybe;
urls: Array;
}
export interface SourceWithContent {
type: Maybe;
installPath: Maybe;
content: SourceString;
}
export declare type Sources = Record | Record;
export declare type ContractTypes = Record;
export declare type Compilers = Array;
export declare type Deployment = Record;
export declare type Deployments = Map;
export declare type BuildDependencies = Record;
export interface Package {
packageName: Maybe;
version: Maybe;
manifest: Manifest;
meta: Meta.PackageMeta;
sources: Sources;
compilers: Compilers;
contractTypes: ContractTypes;
deployments: Deployments;
buildDependencies: BuildDependencies;
}