import type { Action, Session, Snapshot, SignerCache } from "@canvas-js/interfaces"; import { GossipLogConsumer } from "@canvas-js/gossiplog"; import { ExecutionContext } from "../ExecutionContext.js"; import { ModelSchema, RulesInit } from "../types.js"; export type WriteRecord = { record_id: string; message_id: string; value: Uint8Array; csx: number | null; }; export type ReadRecord = { reader_id: string; writer_id: string; record_id: string; csx: number; }; export type RecordRecord = { record_id: string; model: string; key: string; version: string; csx: number | null; }; export type RevertRecord = { effect_id: string; cause_id: string; }; export type SessionRecord = { message_id: string; did: string; public_key: string; address: string; expiration: number | null; }; export type ActionRecord = { message_id: string; did: string; name: string; timestamp: number; }; export declare abstract class AbstractRuntime { static effectsModel: { $writes: { $primary: "record_id/message_id"; $indexes: string[]; record_id: "string"; value: "bytes"; message_id: "string"; csx: "integer?"; }; $reads: { $primary: "reader_id/record_id"; $indexes: string[]; record_id: "string"; reader_id: "string"; writer_id: "string"; csx: "integer"; }; $reverts: { $primary: "cause_id/effect_id"; $indexes: string[]; effect_id: "string"; cause_id: "string"; }; $records: { $indexes: string[]; record_id: "primary"; model: "string"; key: "string"; version: "string"; }; }; protected static sessionsModel: { $sessions: { message_id: "primary"; did: "string"; public_key: "string"; address: "string"; expiration: "integer?"; $indexes: string[]; }; }; protected static actionsModel: { $actions: { message_id: "primary"; did: "string"; name: "string"; timestamp: "integer"; $indexes: string[]; }; }; protected static usersModel: { $dids: { did: "primary"; }; }; abstract readonly topic: string; abstract readonly signers: SignerCache; abstract readonly actionNames: string[]; readonly schema: ModelSchema; readonly rules: Record; readonly models: ModelSchema; protected readonly log: import("@libp2p/logger").Logger; protected constructor(models: ModelSchema); protected abstract execute(context: ExecutionContext): Promise; abstract getContract(): string | null; abstract close(): void; getConsumer(): GossipLogConsumer; private handleSnapshot; private handleSession; private handleAction; }