@metamask/ocap-kernel
Version:
OCap kernel core components
41 lines • 1.13 kB
text/typescript
import type { KVStore } from "@metamask/kernel-store";
import type { Logger } from "@metamask/logger";
import type { KRef } from "../types.mjs";
export type StoreContext = {
kv: KVStore;
runQueue: StoredQueue;
runQueueLengthCache: number;
nextObjectId: StoredValue;
nextPromiseId: StoredValue;
nextVatId: StoredValue;
nextRemoteId: StoredValue;
maybeFreeKrefs: Set<KRef>;
gcActions: StoredValue;
reapQueue: StoredValue;
terminatedVats: StoredValue;
inCrank: boolean;
crankSettled?: Promise<void>;
resolveCrank?: (() => void) | undefined;
savepoints: string[];
subclusters: StoredValue;
nextSubclusterId: StoredValue;
vatToSubclusterMap: StoredValue;
logger?: Logger;
};
export type StoredValue = {
get(): string | undefined;
set(newValue: string): void;
delete(): void;
};
export type StoredQueue = {
enqueue(item: object): void;
dequeue(): object | undefined;
delete(): void;
};
export type VatCleanupWork = {
exports: number;
imports: number;
promises: number;
kv: number;
};
//# sourceMappingURL=types.d.mts.map