import { Stream } from "effect"; /** * A select configuration can be either: * - Object-based: `{ name: true, email: true, company: { name: true } }` * - Array-based: `["name", "email"]` (picks those fields) */ type SelectConfig = Record | ReadonlyArray; /** * Apply a field selection as a Stream combinator. * Returns a function that transforms Stream → Stream, projecting each entity * to only the selected fields. * * Supports both object-based (`{ name: true, email: true }`) and * array-based (`["name", "email"]`) selection configs. * Nested selection on populated relationships is supported via object-based config: * `{ name: true, company: { name: true } }`. */ export declare const applySelect: >(select: SelectConfig | undefined) => (stream: Stream.Stream) => Stream.Stream; /** * Apply a field selection to an array of items. * * This is used by cursor pagination where items are collected before selection. * Supports both object-based and array-based selection configs. */ export declare const applySelectToArray: >(items: ReadonlyArray, select: SelectConfig | undefined) => ReadonlyArray; export {}; //# sourceMappingURL=select-stream.d.ts.map