import type { CeramicApi, StreamMetadata } from '@ceramicnetwork/common'; import type { StreamRef } from '@ceramicnetwork/streamid'; import type { TileDocument } from '@ceramicnetwork/stream-tile'; import type { DagJWSResult } from 'dids'; import type { Definition, EncodedDagJWSResult, Schema } from './types'; export declare const SCHEMA_REF_ID = "ceramic://schemaReference"; export declare type CreatedDoc = { id: StreamRef; dependencies: Array; }; export declare type PublishedDocSet = { definitions: Record; schemas: Record; tiles: Record; }; export declare type DocSetData = { docs: Record; definitions: Array; schemas: Array; }; export declare type SignedDocSet = DocSetData>; export declare type EncodedSignedDocSet = DocSetData>; declare type FieldCommon = { required?: boolean; }; declare type FieldType = { type: 'boolean'; } | { type: 'integer'; } | { type: 'float'; } | { type: 'string'; } | { type: 'list'; name: string; } | { type: 'object'; name: string; } | { type: 'reference'; name: string; }; declare type Field = FieldCommon & FieldType; declare type ObjectFields = Record; declare type DocReference = { id: string; schema: string; }; declare type GraphQLDocSetRecords = { index: Record; lists: Record; nodes: Record; objects: Record; references: Record>; roots: Record; }; export declare class DocSet { _ceramic: CeramicApi; _docs: Record>; _definitions: Record>; _schemas: Record>; _schemaAliases: Record; _tiles: Record>; constructor(ceramic: CeramicApi); loadCreated(created: Promise): Promise; loadDoc(streamID: StreamRef | string): Promise; get definitions(): Array; get schemas(): Array; get tiles(): Array; hasSchema(alias: string): boolean; getSchema(alias: string): Promise | null; deleteSchema(alias: string): boolean; createSchema(name: string, schema: Schema, deps?: Array>): Promise; addSchema(schema: Schema, alias?: string): Promise; useExistingSchema(id: StreamRef | string, alias?: string): Promise; hasDefinition(alias: string): boolean; getDefinition(alias: string): Promise | null; deleteDefinition(alias: string): boolean; createDefinition(alias: string, definition: Definition, deps?: Array>): Promise; addDefinition(definition: Definition, alias?: string): Promise; hasTile(alias: string): boolean; getTile(alias: string): Promise | null; deleteTile(alias: string): boolean; createTile>(alias: string, contents: T, meta: Partial, deps?: Array>): Promise; addTile>(alias: string, contents: T, meta: Partial): Promise; toPublished(): Promise; toSigned(): Promise; toSignedJSON(): Promise; toGraphQLDocSetRecords(): Promise; } export declare function publishSignedDocSet(ceramic: CeramicApi, docSet: SignedDocSet): Promise; export declare function publishEncodedSignedDocSet(ceramic: CeramicApi, { docs, ...docSet }: EncodedSignedDocSet): Promise; export {};