import type { CoValueUniqueness, JsonValue, RawCoValue } from "cojson"; import { CoValue, type CoValueClass, type GlobalValidationMode, Group, LoadedAndRequired, type NewInlineOwnerStrategy, type RefOnCreateCallback, type RefPermissions } from "../internal.js"; export type JsonEncoded = "json"; export type Encoder = { encode: (value: V) => JsonValue; decode: (value: JsonValue) => V; }; export type OptionalEncoder = Encoder | { encode: (value: V | undefined) => JsonValue; decode: (value: JsonValue) => V | undefined; }; export type EncodedAs = { encoded: Encoder | OptionalEncoder; }; export type RefEncoded = { ref: CoValueClass | ((raw: RawCoValue) => CoValueClass); optional: boolean; permissions?: RefPermissions; isSnapshot?: boolean; }; export declare function isRefEncoded(schema: Schema): schema is RefEncoded; export declare function instantiateRefEncodedFromRaw(schema: RefEncoded, raw: RawCoValue): V; /** * Derive a child uniqueness from a parent uniqueness and a field name. */ export declare function deriveChildUniqueness(parentUniqueness: CoValueUniqueness["uniqueness"], fieldName: string): CoValueUniqueness["uniqueness"]; /** * Creates a new CoValue of the given ref type, using the provided init values. */ export declare function instantiateRefEncodedWithInit(schema: RefEncoded, init: any, containerOwner: Group, newOwnerStrategy?: NewInlineOwnerStrategy, onCreate?: RefOnCreateCallback, unique?: { uniqueness: CoValueUniqueness["uniqueness"]; fieldName: string; firstComesWins: boolean; }, validationMode?: GlobalValidationMode): V; export type Schema = JsonEncoded | RefEncoded | EncodedAs; export type SchemaFor = LoadedAndRequired extends CoValue ? RefEncoded> : LoadedAndRequired extends JsonValue ? JsonEncoded : EncodedAs>; //# sourceMappingURL=schemaRuntime.d.ts.map