import type { DocHandle } from '@automerge/automerge-repo';
import type * as Schema from 'effect/Schema';
import type { DocumentContent, Entity } from './types.js';
/**
 * Type utility to transform relation fields to accept string arrays or be omitted entirely.
 * This specifically targets Type.Relation fields which are arrays of objects.
 */
type RelationArrayKeys<T> = {
    [K in keyof T]: T[K] extends readonly (infer U)[] ? U extends object ? K : never : T[K] extends (infer U)[] ? U extends object ? K : never : never;
}[keyof T];
type WithRelationsAsStringArrays<T> = Omit<T, RelationArrayKeys<T>> & Partial<Record<RelationArrayKeys<T>, string[] | undefined>>;
export declare const create: <const S extends Schema.Schema.AnyNoContext>(handle: DocHandle<DocumentContent>, type: S) => (data: Readonly<WithRelationsAsStringArrays<Schema.Schema.Type<S>>>) => Entity<S>;
export {};
//# sourceMappingURL=create.d.ts.map