import { ModuleContainer, ModulesConfig, ModulesRecord, TypedClass } from "@proto-kit/common"; import { Runtime, RuntimeModule, RuntimeModulesRecord } from "@proto-kit/module"; import { NetworkStateQuery, Query, Sequencer, SequencerModulesRecord } from "@proto-kit/sequencer"; import { Protocol, ProtocolModulesRecord, ProtocolModule, MandatoryProtocolModulesRecord } from "@proto-kit/protocol"; import { PublicKey } from "o1js"; import { DependencyContainer } from "tsyringe"; import { AppChainTransaction } from "../transaction/AppChainTransaction"; import { AppChainModule } from "./AppChainModule"; export type AppChainModulesRecord = ModulesRecord>>; export interface AppChainDefinition { Runtime: TypedClass>; Protocol: TypedClass>; Sequencer: TypedClass>; modules: AppChainModules; } export type ExpandAppChainModules = AppChainModules & { Runtime: TypedClass>; Protocol: TypedClass>; Sequencer: TypedClass>; }; export interface ExpandAppChainDefinition { modules: ExpandAppChainModules; } /** * Definition of required arguments for AppChain */ export interface AppChainConfig { Runtime: ModulesConfig; Protocol: ModulesConfig; Sequencer: ModulesConfig; AppChain: ModulesConfig; } /** * AppChain acts as a wrapper connecting Runtime, Protocol and Sequencer */ export declare class AppChain extends ModuleContainer> { static from(definition: AppChainDefinition): AppChain; definition: ExpandAppChainDefinition; constructor(definition: AppChainDefinition); get query(): { runtime: Query, RuntimeModules>; protocol: Query, ProtocolModules>; network: NetworkStateQuery; }; get runtime(): Runtime; get sequencer(): Sequencer; get protocol(): Protocol; transaction(sender: PublicKey, callback: () => Promise, options?: { nonce?: number; }): Promise; /** * Starts the appchain and cross-registers runtime to sequencer */ start(proofsEnabled?: boolean, dependencyContainer?: DependencyContainer): Promise; close(): Promise; } //# sourceMappingURL=AppChain.d.ts.map