import type * as Schema from 'effect/Schema'; type SchemaKey = Extract, string>; export type RelationSpacesOverride = 'all' | readonly string[]; export type RelationIncludeConfig = { relationSpaces?: RelationSpacesOverride; valueSpaces?: RelationSpacesOverride; }; export type RelationIncludeBranch = { _config?: RelationIncludeConfig; } & { [key: string]: RelationIncludeBranch | RelationIncludeConfig | boolean | undefined; }; export type EntityInclude = Partial, RelationIncludeBranch | boolean>>; export type Entity = Schema.Schema.Type & { id: string; }; export type WithSpaceIds = IncludeSpaceIds extends true ? T & { spaceIds: string[]; } : T; export type EntityWithRelation = Entity & { _relation: ({ id: string; } & Record) | undefined; }; export type DocumentEntity = { __deleted: boolean; [key: string]: unknown; }; export type DocumentRelation = { from: string; to: string; fromPropertyId: string; __deleted: boolean; [key: string]: unknown; }; export type DocumentContent = { entities?: Record; relations?: Record; }; export type EntityBooleanFilter = { is: boolean; }; export type EntityNumberFilter = { is?: number; greaterThan?: number; lessThan?: number; }; export type EntityStringFilter = { is?: string; startsWith?: string; endsWith?: string; contains?: string; }; export type EntityIdFilter = { is: string; in?: never; } | { in: readonly string[]; is?: never; }; export type RelationEntityIdFilter = { is: string; in?: never; } | { in: readonly string[]; is?: never; }; export type CrossFieldFilter> = { [K in keyof T]?: EntityFieldFilter; } & Extra & { or?: Array>; not?: CrossFieldFilter; }; type RelationExistsFilter = [T] extends [readonly unknown[] | undefined] ? { exists?: boolean; entityId?: string | RelationEntityIdFilter; } : Record; type ScalarFieldFilter = [T] extends [readonly unknown[] | undefined] ? Record : T extends boolean ? { is?: boolean; } : T extends number ? { greaterThan?: number; lessThan?: number; } : T extends string ? { startsWith?: string; endsWith?: string; contains?: string; } : Record; export type EntityFieldFilter = { is?: T; } & RelationExistsFilter & ScalarFieldFilter; export type EntityFilter = CrossFieldFilter; export type SpaceSelectionInput = { space: string; spaces?: never; } | { space?: never; spaces: readonly [string, ...string[]]; } | { space?: never; spaces: 'all'; }; export {}; //# sourceMappingURL=types.d.ts.map