import * as server from './server'; import * as client from './client'; import * as make from './make'; import { fromReflection } from './make'; import * as valueClass from './value-class'; import * as reflection from './reflection-type'; import { ValueClass } from './value-class'; export { redirect } from './redirect'; export { make, fromReflection, server, client, valueClass, reflection }; export declare const noContentContentType: "oatsNoContent"; export { serialize } from './serialize'; export { getType, withType } from './type-tag'; type Scalar = number | string | boolean; declare const typeWitnessKey: unique symbol; declare const tagKey: unique symbol; type ScalarWithoutBrand = V extends ShapedClass ? ScalarWithoutBrand : V; export declare function instanceAssign(to: ValueClass, value: Record, opts: make.MakeOptions | { unSafeSet: boolean; } | undefined, builder: make.Maker): valueClass.ValueClass; export type ShapeOf = A extends Scalar ? ScalarWithoutBrand : A extends ShapedClass ? S : unknown extends A ? unknown : A extends Array ? Array> : A extends ReadonlyArray ? ReadonlyArray> : { [K in keyof A]: ShapeOf; }; declare class ShapedClass { protected [typeWitnessKey]: Shape; } declare class BrandedClass { protected [tagKey]: Tag; } export type Shaped = Type extends Nully ? Type : Type & ShapedClass; type Nully = null | undefined; export type BrandedScalar = Type extends Nully ? Type : Shaped & BrandedClass; export declare function setHeaders>(response: server.Response>, headers: Headers): server.Response; export declare function noContent(status: Status): server.Response>; export declare function json(status: Status, value: Value): server.Response>; export declare function text(status: Status, value: Value): server.Response>; export declare function set(to: Cls, set: Cls extends valueClass.ValueClass ? Partial> : never): make.Make; export type ValueType = valueClass.ValueClass | { [key: string]: any; } | readonly any[] | string | boolean | number; export declare function map(value: A, predicate: (a: any) => a is T, fn: (p: T, traversalPath: string[]) => T): A; export declare function getAll(value: A, predicate: (a: any) => a is T): readonly T[]; export declare function pmap(value: A, predicate: (a: any) => a is T, map: (p: T, traversalPath: string[]) => Promise): Promise;