@ceramicnetwork/stream-model
Version:
Ceramic Model stream type
31 lines • 1.77 kB
TypeScript
import { LoadOpts, Stream, StreamReader, StreamWriter } from '@ceramicnetwork/common';
import { CommitID, StreamID } from '@ceramicnetwork/streamid';
import { ModelDefinition, type ModelMetadata } from './codecs.js';
export declare type LoadingInterfaceImplements = Record<string, Promise<Array<string>>>;
export declare function loadInterfaceImplements(reader: StreamReader, modelID: string): Promise<Array<string>>;
export declare function loadAllModelInterfaces(reader: StreamReader, interfaces: Array<string>, loading?: LoadingInterfaceImplements): Promise<Array<string>>;
export declare const MODEL_VERSION_REGEXP: RegExp;
export declare function parseModelVersion(version: string): [number, number];
export interface ModelMetadataArgs {
controller: string;
}
export declare type ValidVersionSatisfies = 'major' | 'minor';
export declare class Model extends Stream {
static STREAM_TYPE_NAME: string;
static STREAM_TYPE_ID: number;
static readonly MODEL: StreamID;
static readonly VERSION = "2.0";
private _isReadOnly;
get content(): ModelDefinition;
get metadata(): ModelMetadata;
static create(ceramic: StreamWriter, content: ModelDefinition, metadata?: ModelMetadataArgs): Promise<Model>;
static assertComplete(content: ModelDefinition, _streamId?: StreamID | CommitID | string): void;
static assertVersionValid(content: ModelDefinition, satisfies?: ValidVersionSatisfies): void;
static assertRelationsValid(content: ModelDefinition): void;
static load(ceramic: StreamReader, streamId: StreamID | CommitID | string, opts?: LoadOpts): Promise<Model>;
private static _makeGenesis;
private static _makeRawGenesis;
makeReadOnly(): void;
get isReadOnly(): boolean;
}
//# sourceMappingURL=model.d.ts.map