import { Dictionary, Callable, Serial, Intersection, Primitive } from 'type-core'; import { Schema } from '../../definitions/index.js'; import { Assert } from '../assert.js'; import { Take } from '../take.js'; import { Ensure } from '../ensure/ensure.js'; import { Coerce } from '../coerce.js'; import { Select } from '../select.js'; import 'json-schema'; import '../ensure/types.js'; type Collect = { [P in keyof O]: O[P] extends Collect.Collector ? ReturnType : never; }; declare namespace Collect { interface Options { failEarly: boolean; } type Collection> = Callable; type Collector = Callable; interface Actions { get: () => Collector; assert: (options?: Assert.Options) => Collector>; take: (options?: Take.Options) => Collector>; ensure: (schema: Ensure.Schema, options?: Ensure.Options) => Collector>; coerce: (schema: Coerce.Schema, options?: Coerce.Options) => Collector>; select: (selector: Select.Selector, S>, options?: Select.Options) => Collector>; } } declare function collect, O extends Dictionary>(data: I, collection: Collect.Collection, options?: Collect.Options): Collect; export { Collect, collect };