import { IHydrationSchema, IOperationalFactory, IPrivateDataProvider } from '../../interfaces/document/base'; import { BlockService } from '../../services/blockService'; import { MemberCblService } from '../../services/member/memberCblService'; import { InstanceMethods, SchemaDefinition, SchemaType, StaticMethods } from '../../types/schema'; /** * Unified Document base class combining schema validation, serialization, and convertible patterns * Built for BrightChain's owner-free filesystem blockstore */ export declare class Document { private data; private schema?; private instanceMethods; private staticMethods; protected static blockService: BlockService | undefined; private _dirty; private _deleted; constructor(data: Partial, schema?: SchemaDefinition, instanceMethods?: InstanceMethods, staticMethods?: StaticMethods); static initialize(blockService: BlockService, _memberService?: MemberCblService): void; applyDefaults(data: Partial): T; validateType(value: unknown, type: SchemaType): boolean; validateSchema(data: Partial | undefined): void; get(key: K): T[K]; set(key: K, value: T[K] | undefined): void; getData(): T; setData(data: T): void; hydrateData(data: Partial): void; toJson(): string; static fromJson(json: string, schema?: SchemaDefinition, instanceMethods?: InstanceMethods, staticMethods?: StaticMethods): Document; save(): Promise; load(): Promise; delete(): Promise; get dirty(): boolean; get deleted(): boolean; static new(data: Partial, schema?: SchemaDefinition, instanceMethods?: InstanceMethods, staticMethods?: StaticMethods): Document; } /** * Convertible Document class for advanced transformation patterns */ export declare class ConvertibleDocument { protected readonly hydrationSchema: IHydrationSchema; protected readonly operationalFactory: IOperationalFactory; private privateDataProvider?; constructor(hydrationSchema: IHydrationSchema, operationalFactory: IOperationalFactory); fromStorage(storage: TStorage): TOperational; toStorage(operational: TOperational): TStorage; setPrivateDataProvider(provider: IPrivateDataProvider): void; clearPrivateDataProvider(): void; save(_operational?: TOperational): Promise; load(): Promise; delete(_operational: TOperational): Promise; } //# sourceMappingURL=document.d.ts.map