import { darc } from "@dedis/cothority"; import { ByzCoinRPC, InstanceID, IStorage } from "@dedis/cothority/byzcoin"; import { CoinInstance, SpawnerInstance } from "@dedis/cothority/byzcoin/contracts"; import { SignerEd25519 } from "@dedis/cothority/darc"; import ISigner from "@dedis/cothority/darc/signer"; import { Scalar } from "@dedis/kyber"; import { LongTermSecret } from "@dedis/cothority/calypso"; import { Fetcher } from "./fetcher"; import { KeyPair } from "./keypair"; import { User } from "./user"; export interface IGenesisUser { keyPair: KeyPair; darc?: darc.Darc; darcID?: InstanceID; } export interface ICoin { instance: CoinInstance; signers: ISigner[]; } export declare class Genesis extends Fetcher { db: IStorage; bc: ByzCoinRPC; genesisUser?: IGenesisUser; spawner?: SpawnerInstance; coin?: ICoin; get signers(): SignerEd25519[]; get darcID(): InstanceID; static readonly rules: string[]; static create(priv: Scalar, createBC: (igd: IGenesisUser, db: IStorage) => Promise, db?: IStorage): Promise; constructor(db: IStorage, bc: ByzCoinRPC, genesisUser?: IGenesisUser, spawner?: SpawnerInstance, coin?: ICoin); evolveGenesisDarc(): Promise; createCoin(): Promise; createSpawner(): Promise; createUser(alias?: string, priv?: Scalar, dbBase?: string, lts?: LongTermSecret): Promise; }