import App from '../application/App'; import Package from '../application/Package'; import ProxyAdmin from '../proxy/ProxyAdmin'; import ImplementationDirectory from '../application/ImplementationDirectory'; import BasePackageProject from './BasePackageProject'; import SimpleProject from './SimpleProject'; import Contract from '../artifacts/Contract'; import ProxyAdminProject from './ProxyAdminProject'; import ProxyFactory from '../proxy/ProxyFactory'; import { TxParams } from '../artifacts/ZWeb3'; export interface ContractInterface { packageName?: string; contractName?: string; initMethod?: string; initArgs?: string[]; redeployIfChanged?: boolean; admin?: string; } interface ExistingAddresses { appAddress?: string; packageAddress?: string; proxyAdminAddress?: string; proxyFactoryAddress?: string; } declare class BaseAppProject extends BasePackageProject { private name; private app; proxyAdmin: ProxyAdmin; proxyFactory: ProxyFactory; static fetchOrDeploy(name?: string, version?: string, txParams?: TxParams, { appAddress, packageAddress, proxyAdminAddress, proxyFactoryAddress }?: ExistingAddresses): Promise; static fromProxyAdminProject(proxyAdminProject: ProxyAdminProject, version?: string, existingAddresses?: ExistingAddresses): Promise; static fromSimpleProject(simpleProject: SimpleProject, version?: string, existingAddresses?: ExistingAddresses): Promise; constructor(app: App, name: string, version: string, proxyAdmin: ProxyAdmin, proxyFactory: ProxyFactory, txParams?: TxParams); newVersion(version: any): Promise; getAdminAddress(): Promise; getApp(): App; ensureProxyAdmin(): Promise; ensureProxyFactory(): Promise; getProjectPackage(): Promise; getCurrentDirectory(): Promise; getCurrentVersion(): Promise; getImplementation({ packageName, contractName, contract, }: { contractName?: string; packageName?: string; contract?: Contract; }): Promise; createProxy(contract: Contract, contractInterface?: ContractInterface): Promise; protected getContractInterface(contract: Contract, opts?: ContractInterface): ContractInterface; createProxyWithSalt(contract: Contract, salt: string, signature?: string, contractInterface?: ContractInterface): Promise; createMinimalProxy(contract: Contract, contractInterface?: ContractInterface): Promise; getProxyDeploymentAddress(salt: string, sender?: string): Promise; getProxyDeploymentSigner(contract: any, salt: string, signature: string, { packageName, contractName, initMethod, initArgs, admin }?: ContractInterface): Promise; upgradeProxy(proxyAddress: string, contract: Contract, contractInterface?: ContractInterface): Promise; getDependencyPackage(name: string): Promise; getDependencyVersion(name: string): Promise; hasDependency(name: any): Promise; setDependency(name: string, packageAddress: string, version: string): Promise; unsetDependency(name: string): Promise; protected getAndLogInitCallData(contract: Contract, initMethodName?: string, initArgs?: string[], implementationAddress?: string, actionLabel?: string, proxyAddress?: string): string | null; } declare const AppProject_base: { new (...args: any[]): { proxyAdmin: ProxyAdmin; transferAdminOwnership(newAdminOwner: string): Promise; changeProxyAdmin(proxyAddress: string, newAdmin: string): Promise; }; } & typeof BaseAppProject; export default class AppProject extends AppProject_base { } export {};